相关:Remove all the elements that occur in one list from another
我有listA [1, 1, 3, 5, 5, 5, 7]
和listB [1, 2, 5, 5, 7]
,我想从listA中减去项目的出现次数。结果应该是一个新列表:[1, 3, 5]
注意:
1
在listA中出现2次,在listB中出现一次,现在显示为2-1 = 1次2
未出现在listA中,因此没有任何反应3
保留1次,因为它不在listB中5
在listA中发生了3次,在listB中发生了2次,所以现在它发生了3-2 = 1次7
在listA中发生一次,在listB中发生一次,现在它将出现1-1 = 0次这有意义吗?
答案 0 :(得分:3)
这是Python新手
的非列表理解版本listA = [1, 1, 3, 5, 5, 5, 7]
listB = [1, 2, 5, 5, 7]
for i in listB:
if i in listA:
listA.remove(i)
print listA
答案 1 :(得分:2)
在这些情况下,应始终使用列表理解:
listA = [1, 1, 3, 5, 5, 5, 7]
listB = [1, 2, 5, 5, 7]
newList = [i for i in listA if i not in listB or listB.remove(i)]
print (newList)
结果如下:
[1, 3, 5]