检索除一个值之外的所有值

时间:2018-03-15 15:35:25

标签: python

我希望从列表中检索除一个值以外的所有值:

 ll = ['a','b','c']
 nob = [x for x in ll if x !='b']

有没有更简单,更pythonic的方式来做这个,也许有套装?

2 个答案:

答案 0 :(得分:2)

鉴于该元素在列表中是唯一的,您可以使用list.index

i = l.index('b')
l = ll[:i] +ll[i+1:]

另一种可能性是使用list.remove

ll.remove('b') #notice that ll will change underneath here

无论你做什么,你都必须逐步浏览列表并比较每个元素,这对于长列表来说会变慢。但是,使用索引,您将获得第一个匹配元素的索引,并且可以单独操作,从而避免单步执行列表的其余部分。

答案 1 :(得分:0)

list_ = ['a', 'b', 'c']

list_.pop(1)

您还可以使用.pop,并传递要从列表中弹出的索引列或名称。当您打印列表时,您将看到它存储['a','c']并且'b'已从其中“弹出”。