我有兩個列表,每個列表都具有非唯一編號,這意味着它們可以具有多次相同的值。可能重複值的兩個列表之間的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
值是整數,還是你需要更通用的解決方案 –