如何找到两个列表的共同元素?

时间:2019-03-05 21:37:25

标签: python python-3.x

我正在尝试使用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'出现两次而其他重复的动物没有出现。

1 个答案:

答案 0 :(得分:3)

使用sets,它像一个列表,但只能容纳唯一的项目:

set(lista).intersection(listb)