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)