python从另一个列表中删除列表的元素,两个项目中包含多个项目

时间:2016-07-23 16:58:18

标签: python list

相关: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. 1在listA中出现2次,在listB中出现一次,现在显示为2-1 = 1次
  2. 2未出现在listA中,因此没有任何反应
  3. 3保留1次,因为它不在listB中
  4. 5在listA中发生了3次,在listB中发生了2次,所以现在它发生了3-2 = 1次
  5. 7在listA中发生一次,在listB中发生一次,现在它将出现1-1 = 0次
  6. 这有意义吗?

2 个答案:

答案 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]

相关问题