参见英文答案 > 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)]