可能是重复问题:
Python:如何找到列表交集?
我有两个数据列表在一个.txt文件中。
data1 = "name1", "name2", "name3", "name4" etc.
data2 = "name3", "name6", "name10" etc.
我想找出两个列表中都出现过的名字,应该怎么做?
可能是重复问题:
Python:如何找到列表交集?
我有两个数据列表在一个.txt文件中。
data1 = "name1", "name2", "name3", "name4" etc.
data2 = "name3", "name6", "name10" etc.
我想找出两个列表中都出现过的名字,应该怎么做?
使用集合:
set(data1) & set(data2)
&
运算符表示“给我这两个集合的交集”; 或者你可以使用 .intersection
方法:
set(data1).intersection(data2)
nf = [x for x in data1 if x in data2]
nf
返回两个列表中共同的项。
>>> [ name for name in data1 if name in data2 ]
['name3']
For a in data1:
for b in data2:
if a==b:
print(a)
这是一种方法,但不是最好的方法
Counter()
对象,它们是多重集合。 - Martijn Pietersdata2
创建一个集合,并使用列表推导式来测试值是否与该集合匹配:data2_set = set(data2)
和[v for v in data1 if v in data2]
。 - Martijn Pietersdata1
中的重复项,你需要使用members = set(data1).intersection(data2)
和[v for v in data1 if v in members]
来删除那种情况下的重复项。 - Martijn Pieters