gpt4 book ai didi

python - Python 中两个具有重复项的列表之间的区别

转载 作者:太空狗 更新时间:2023-10-29 17:09:58 24 4
gpt4 key购买 nike

我有两个列表,其中包含许多相同的项目,包括重复的项目。我想检查第一个列表中的哪些项目不在第二个列表中。例如,我可能有一个这样的列表:

l1 = ['a', 'b', 'c', 'b', 'c']

还有一个这样的列表:

l2 = ['a', 'b', 'c', 'b']

比较这两个列表,我想返回这样的第三个列表:

l3 = ['c']

我目前正在使用我不久前编写的一些糟糕的代码,我相当确定它们甚至无法正常工作,如下所示。

def list_difference(l1,l2):
for i in range(0, len(l1)):
for j in range(0, len(l2)):
if l1[i] == l1[j]:
l1[i] = 'damn'
l2[j] = 'damn'
l3 = []
for item in l1:
if item!='damn':
l3.append(item)
return l3

我怎样才能更好地完成这项任务?

最佳答案

您没有指定顺序是否重要。如果没有,您可以在 >= Python 2.7 中执行此操作:

l1 = ['a', 'b', 'c', 'b', 'c']
l2 = ['a', 'b', 'c', 'b']

from collections import Counter

c1 = Counter(l1)
c2 = Counter(l2)

diff = c1-c2
print list(diff.elements())

关于python - Python 中两个具有重复项的列表之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com