我正在比较一个元组的元组和一个元组的列表。 我需要将常见元素列出来。
假设我有一个元组k1= ((91, 25),(94, 27),(100, 22))
以及列表k2 = [(1,2), (4, 2), (100, 22)]
。如何比较k1
和k2
中的元素
并获取常见元素列表?
以上示例的预期输出:
[(100, 22)]
答案 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)]