如何使用列表推导来扩展python中的列表?

参见英文答案 > list.extend and list comprehension                                    6个
我没有Python经验,我经常编写(简化)代码如下:

accumulationList = []
for x in originalList:
    y = doSomething(x)
    accumulationList.append(y)
return accumulationList

然后在我的测试通过后,我重构了

return [doSomething(x) for x in originalList]

但是假设结果有点不同,我的循环看起来像这样:

accumulationList = []
for x in originalList:
    y = doSomething(x)
    accumulationList.extend(y)
return accumulationList

doSomething列表返回列表的位置.什么是最恐怖的方式来实现这一目标?显然,之前的列表理解会给出一个列表列表.

解决方法:

列表理解更简单,更清晰:

[y for x in originalList for y in doSomething(x)]
上一篇:Java嵌套通配符泛型将无法编译


下一篇:PHP:带有递归函数的嵌套菜单,只展开一些节点(不是所有树)