我有两个列表如下
tags = [u'man', u'you', u'are', u'awesome']
entries = [[u'man', u'thats'],[ u'right',u'awesome']]
我想从中提取条目entries
当他们在tags
:
result = []
for tag in tags:
for entry in entries:
if tag in entry:
result.extend(entry)
如何将两个循环编写为单行列表理解?
记住这一点的最好方法是,列表理解中 for 循环的顺序基于它们在传统循环方法中出现的顺序。最外层循环首先出现,然后是内层循环。
因此,等效的列表理解将是:
[entry for tag in tags for entry in entries if tag in entry]
一般来说,if-else
语句出现在第一个 for 循环之前,如果您只有一个if
声明,它会在最后出现。例如,如果您想添加一个空列表,如果tag
不在条目中,您可以这样做:
[entry if tag in entry else [] for tag in tags for entry in entries]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)