我正在尝试使用python 3查找两个列表的公共元素,并创建一个新列表,其中公共元素仅出现一次。这是我到目前为止的内容:
lengtha = len(lista);
lengthb = len(listb);
identical = [];
checker = 0;
for i in range (0, lengtha-1):
for j in range (0, lengthb-1):
if lista[i] == listb[j]:
length = len(identical);
for h in range (0, length-1):
if lista[i] == identical[h]:
checker = 1;
if checker == 0:
identical.append(list[i]);
checker = 0;
当我尝试使用列表
lista = ['hello', 'cat', 'dog', 'dog']
listb = ['hello', 'cat', 'cat', 'mouse', 'whale', 'whale', 'elephant', 'whale', 'elephant', 'dog', 'dog']
结果为['hello','cat','cat','dog']
。我不知道为什么'cat'
出现两次而其他重复的动物没有出现。
答案 0 :(得分:3)
使用sets
,它像一个列表,但只能容纳唯一的项目:
set(lista).intersection(listb)