重複の可能性:
Pythonのリストの(不規則な)リストをフラット化する
Pythonを使用してリストを再帰的にフラット化するのに問題があります。リスト内包表記を必要とする多くのメソッドとインポートを必要とするさまざまなメソッドを見てきましたが、forループも使用しないさまざまな深さのリストを再帰的にフラット化する非常に基本的なメソッドを探しています。一連のテストを受けましたが、合格できないものが2つあります
flatten([[[[]]], [], [[]], [[], []]]) # empty multidimensional list
flatten([[1], [2, 3], [4, [5, [6, [7, [8]]]]]]) # multiple nested list
私のコード
def flatten(test_list):
#define base case to exit recursive method
if len(test_list) == 0:
return []
elif isinstance(test_list,list) and type(test_list[0]) in [int,str]:
return [test_list[0]] + flatten(test_list[1:])
elif isinstance(test_list,list) and isinstance(test_list[0],list):
return test_list[0] + flatten(test_list[1:])
else:
return flatten(test_list[1:])
アドバイスをいただければ幸いです。