私はリストの理解を使用してリストを平坦化しようとしています。私のリストは、やや私は私が取得していますリストの内包を通して私のリストを平らにするために同じロジックを使用するとリストのリストのリストのリストを平滑化
def flat(listoflist):
for item in listoflist:
if type(item) != list:
print item
else:
for num in item:
print num
>>> flat(list1)
1
2
3
4
5
6
7
8
このコードを書いただけで、リストのこのリストの印刷、個々の項目について
[[1, 2, 3], [4, 5, 6], 7, 8]
のようなものです次のエラー
list2 = [item if type(item) != list else num for num in item for item in list1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
リストの理解度を使用してこのタイプのリストをフラット化するにはどうすればよいですか?
これは2.xを使っている質問者にはうってつけですが、3.xユーザーは2.xを使う代わりに 'str'を使うべきです'basestring'。 –
@Ashwini要素が整数ではなくdict型の場合はどうすればよいですか? –
@AnuragSharma小さな例ですか? –