如何将列表中的列表从列表中删除到新列表中?那么从 a 中减去 b 以产生一个新列表 c?
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,]
b = [3, 4, 5, 6]
c = []?
如何将列表中的列表从列表中删除到新列表中?那么从 a 中减去 b 以产生一个新列表 c?
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,]
b = [3, 4, 5, 6]
c = []?
将列表转换为集合并获取集合差异。
c = list(set(a).difference(set(b))
要保持排序并通过使用集合成员资格获得加速:
bs = set(b)
c = [x for x in a if x not in bs]
或使用列表推导:
c = [x for x in a if x not in b]
根据你正在做的事情,首先你可能会更好地使用集合:
>>> a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, }
>>> b = {3, 4, 5, 6}
>>> a
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b
set([3, 4, 5, 6])
>>> a.difference(b)
set([0, 1, 2, 7, 8, 9])
collections.Counter
如果您想计算多次重复,这是另一种有用的标准类型:
>>> from collections import Counter as C
>>> a = C([1,1,1,2,2,3,4])
>>> b = C([1,4,5])
>>> a - b
Counter({1: 2, 2: 2, 3: 1})