繁体   English   中英

比较元组和列表之间的元素?

[英]Comparing elements between a tuple and list?

我在元组元组和元组列表之间进行比较。 我需要在列表中列出常见元素。

假设我有一个元组k1= ((91, 25),(94, 27),(100, 22))和一个列表k2 = [(1,2), (4, 2), (100, 22)] 如何比较k1k2的元素并获得公共元素的列表?

上述示例的预期输出:

[(100, 22)]

您可以使用设置交集:

set(k1).intersection(k2)

这将返回:

{(100, 22)}

你可以使用一个简单的列表理解,

common_items = [item1 for item1 in list(k1) for item2 in k2 if item1 == item2]

这是输出,

>>> common_items

[(100, 22)]
[i for i in k1 if i in k2]

您可以使用简单的列表理解来遍历列表中的每个元组并从那里进行比较

或者:

print([i for i in b if i not in (set(a)^set(b))])

^运算符 + list comprehension用于获取相反的值。

或者更好:

print(set(a)&set(b))

我推荐这个,这是最短的

您可以使用filter功能

k1 = ((91, 25),(94, 27),(100, 22))
k2 = [(1,2), (4, 2), (100, 22)]
print filter(lambda x: x in k1,k2)

结果:

[(100, 22)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM