列表理解的优雅总结
列表理解很棒。是否有一种优雅、灵活的方式来进行列表理解,在项目进行时将项目相互附加,而不是将它们全部放在一个列表中?
IE,我有一些理解[func(x) for x in y if z]会吐出来[['a','b'],['c','d'],['e','f']],我可以写什么来代替吐出来['a','b','c','d','e','f']?
显然我可以做到
alist = []
for x in y:
if z:
alist += func(x)
但那是四五行代码!感觉必须有一种方法可以像列表理解一样简单易行。
回答
[elem for x in y if z for elem in func(x)]
只需添加另一层迭代。