使用列表迭代元组列表的所有元素

问题描述 投票:0回答:1

我有一个元组列表(又由列表组成),想检查元组中第一个列表的元素有多少在元组的第二个列表中。

names =[
 ([''],['aa']),
 (['aa', 'bb'],['aa']),
 (['cc'],['cc', 'dd', 'yy']),
 (['xx', 'ss'],['xx', 'ss']),
 ]

所以对于上述内容我想要一份清单

[0, 1, 1, 2]

因为 '' 不在 ['aa'} 中,'aa' 在 ['aa'] 中,'cc' 在 ['cc', 'dd', 'yy'] 中以及 'xx' 和 'ss'位于 ['xx', 'ss'] 中。 有没有办法不用 for 循环来做到这一点?

python list loops list-comprehension
1个回答
1
投票

可以统计两者交集处的元素:

[len(set(first) & set(second)) for (first, second) in names]
# [0, 1, 1, 2]

请注意,这仍然是一个 for 循环,只是写为列表理解。

© www.soinside.com 2019 - 2024. All rights reserved.