ネストされたリストを裏返しに繰り返すときに、「型チェックはPythonicではない」と言われました。一般的に、これは真実です。特定のタイプではなく、インターフェース(ダックタイピング)のみを調べたいのです。
質問はフォームのネストされたリストについて尋ねます['a', ['c', ['e'], 'd'], 'b']
、そして私たちは特に文字列をアトミック(反復不可能)と見なします。したがって、毛布を使用することはできませんcollections.Iterable
が、一方でisinstance(x, list)
、少しハッキーに見えます。
私の答えは
def traverse(l):
for x in l:
if isinstance(x, list):
traverse(x)
callback(l)
より良いアプローチは何ですか?それともisinstance
ここで大丈夫ですか?