我有两个列表,每个列表都具有非唯一编号,这意味着它们可以具有多次相同的值。可能重复值的两个列表之间的Python差异
我需要找到两者之间的差异,考虑到相同的值可能会出现多次(所以我不能采取每组之间的差异)的事实。所以,我需要检查一个值是否在第一个列表中出现的次数多于第二个列表中的次数。
的列表是:
l1 = [1, 2, 5, 3, 3, 4, 9, 8, 2]
l2 = [1, 1, 3, 2, 4, 8, 9]
# Sorted and justified
l1 = [1, 2, 2, 3, 3, 4, 5, 8, 9]
l2 = [1, 1, 2, 3, 4, 8, 9]
列表中的元件可以是字符串或整数或浮点数。 所以结果列表应该是:
difference(l1, l2) == [3, 5, 2]
# There is an extra 2 and 3 in l1 that is not in l2, and a 5 in l1 but not l2.
difference(l2, l1) == [1]
# The extra 1 is the only value in l2 but not in l1.
我已经试过列表理解[x for x in l1 if x not in l2]
这是不行的,因为它没有考虑在这两个重复的值。
你试过做什么? – depperm
我试过列表生成器,只有我能想到的这种情况下,没有建立一个循环函数[x在l1中x,如果x不在l2中]不起作用 – clg4
值是整数,还是你需要更通用的解决方案 –