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

2024-09-28 18:56:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

有没有更简单,更具Python风格的方法来做这件事,也许是用布景?你知道吗


Tags: 方法in列表forif风格ll布景
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

不管你做什么,你总是要一步一步地浏览列表并比较每个元素,这对于长列表来说会很慢。但是,使用索引,您将获得第一个匹配元素的索引,并且可以单独使用它,从而避免单步遍历列表的其余部分。你知道吗

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

list_.pop(1)

也可以使用.pop,并传递要从列表中弹出的索引列或名称。当您打印列表时,您将看到它存储了['a'、'c']和'b',并从中“弹出”。你知道吗

相关问题 更多 >