Python 如何将列表理解与.extend list方法结合使用?
例如,此代码段:Python 如何将列表理解与.extend list方法结合使用?,python,list-comprehension,Python,List Comprehension,例如,此代码段: out = [] for foo in foo_list: out.extend(get_bar_list(foo)) # get_bar_list return list with some data return out 如何使用列表理解缩短此代码?您可以使用生成器表达式并使用它: 您可以使用嵌套列表: out = [foo for sub_item in foo_list for foo in get_bar_list(sub_item)] for sub_i
out = []
for foo in foo_list:
out.extend(get_bar_list(foo)) # get_bar_list return list with some data
return out
如何使用列表理解缩短此代码?您可以使用生成器表达式并使用它:
您可以使用嵌套列表:
out = [foo for sub_item in foo_list for foo in get_bar_list(sub_item)]
for sub_item in foo_list:
for foo in get_bar_list(sub_item):
out.append(foo)
FWIW,我总是很难准确地记住嵌套列表理解的顺序,因此我通常更喜欢使用itertools.chain
(正如摩西在回答中提到的)。但是,如果您确实喜欢嵌套列表理解,则顺序与在普通循环中遇到的顺序相同(最内层的循环变量可用于列表理解中的第一个表达式):
相关,如果不重复:@parsenz No,因为这将在OP查找扁平列表时创建列表列表。
for sub_item in foo_list:
for foo in get_bar_list(sub_item):
out.append(foo)