列表理解中函数调用的多重返回

Ale*_*sio 2 python flatten

我需要对与此特定案例相关的 Python 功能进行解释:我有一个列表推导式,它为listA. 使用此代码:

listA = [1,1,1]

def operation(n):
    result = []
    *code do something*
    result = [a,b,c]
    return result 

listB = [operation(element) for element in listA]
Run Code Online (Sandbox Code Playgroud)

我获得:

listB = [[a,b,c],[a,b,c],[a,b,c]]
Run Code Online (Sandbox Code Playgroud)

如何单独返回列表的多个元素以实现此目的?

listB = [a,b,c,a,b,c,a,b,c]
Run Code Online (Sandbox Code Playgroud)

我试过的是:

ListA = [1,1,1]

def operation(n):
    result = []
    *code do something*
    result = [a,b,c]
    for x in result:
        return x
Run Code Online (Sandbox Code Playgroud)

输出:[a,a,a]代替[a,b,c,a,b,c,a,b,c]

注1:不能使用任何导入

注2:我提出了一个简单的案例,我无法在平面列表中转换列表,我需要的是能够从单个调用中返回多个值,这可能吗?谢谢

Thi*_*lle 5

您可以迭代每个返回列表的项目以展平输出:

listB = [item for element in listA for item in operation(element)]
Run Code Online (Sandbox Code Playgroud)

请注意,for表达式的顺序与您编写“正常”循环时的顺序相同。