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

时间:2018-11-07 06:04:23

标签: python list tuples

我正在比较一个元组的元组和一个元组的列表。 我需要将常见元素列出来。

假设我有一个元组k1= ((91, 25),(94, 27),(100, 22))     以及列表k2 = [(1,2), (4, 2), (100, 22)]。如何比较k1k2中的元素     并获取常见元素列表?

以上示例的预期输出:

[(100, 22)]

5 个答案:

答案 0 :(得分:2)

您可以使用设置交集:

set(k1).intersection(k2)

这将返回:

{(100, 22)}

答案 1 :(得分:0)

您可以为此使用简单的列表理解

B

这是输出,

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

答案 2 :(得分:0)

[i for i in k1 if i in k2]

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

答案 3 :(得分:0)

或者:

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

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

或更妙的是:

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

我推荐这个,它是最短的

答案 4 :(得分:0)

您可以使用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)]