我希望从列表中检索除一个值以外的所有值:
ll = ['a','b','c']
nob = [x for x in ll if x !='b']
有没有更简单,更pythonic的方式来做这个,也许有套装?
答案 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'已从其中“弹出”。