[英]nested list comprehension with if/else statement
我的印象是這個片段可以通過列表理解和基於相關答案的 function 來改進。 然后,我開始更改此代碼段:
l=[['rfn'], ['abod'], [['splash', 'aesthet', 'art']], [['splash', 'aesthet', 'anim']], ['fabl'], ['clean']]
flat_list = []
for sublist in l:
print("sublist: ", sublist)
for item in sublist:
if type(item)== list:
for i in item:
flat_list.append(i)
else:
flat_list.append(item)
print(flat_list)
對於這個不起作用的新版本:
l=[['rfn'], ['abod'], [['splash', 'aesthet', 'art']], [['splash', 'aesthet', 'anim']], ['fabl'], ['clean']]
def foo(item):
flat_l=[]
if type(item)== list:
for i in item:
flat_l.append(i)
else:
flat_l.append(item)
return flat_l
flat_list=[item for sublist in l foo(item) for item in sublist]
print(flat_list)
由於語法錯誤而抱怨:
文件“”,第 33 行flat_list=[item for sublist in l foo(item) for item in sublist]
^ SyntaxError: invalid syntax
我在 python3 中的代碼
l=[['rfn'], ['abod'], [['splash', 'aesthet', 'art']], [['splash', 'aesthet', 'anim']], ['fabl'], ['clean']]
e=[]
any(e.extend(i[0]) if isinstance(i[0], list) else e.extend(i) for i in l)
print(e)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.