pythonic方法在列表中查找尚未提供的值

时间:2011-04-05 23:19:50

标签: python list

这是我的意思的一个例子:

a = 0
b = 1

c = range(3)

所以我想找到列表中缺少的数字,在这种情况下是2。

我此刻编程的方式既麻烦又难看。

如果有一个与list.append()相反的函数,那么我可以从列表中删除值,而不是很好。

由于

3 个答案:

答案 0 :(得分:4)

使用sets

>>> a = 0
>>> b = 1
>>> c = range(3)
>>> set(c) - set([a, b])
set([2])

答案 1 :(得分:2)

通过将列表转换为集合来使用set difference,然后执行设置差异操作。

>>> supplied_list = [0, 1]
>>> list(set(range(3)) - set(supplied_list))
[2]

答案 2 :(得分:1)

list.remove将从列表中删除第一次出现的给定值。如果您想要专门删除最后一项(附加的项目),请使用list.pop