如何删除列表中每个元组中的最后一个元素

use*_*144 4 python tuples list

我有一个列表,如:

alist = [[a,b,(1,2)], [a,b,(1,2)], [a,b,(1,2)]]
Run Code Online (Sandbox Code Playgroud)

我想从列表中的所有元素中删除最后一个元素.结果将是:

alist = [[a,b], [a,b], [a,b]]
Run Code Online (Sandbox Code Playgroud)

有没有快速的方法来做到这一点?

ken*_*ytm 10

您可以使用list comprehension创建一个删除最后一个元素的新列表.

>>> alist = [[1,2,(3,4)],[5,6,(7,8)],[9,10,(11,12)]]
>>> [x[:-1] for x in alist]       # <-------------
[[1, 2], [5, 6], [9, 10]]
Run Code Online (Sandbox Code Playgroud)

但是,如果您想要效率,可以就地修改列表:

>>> alist = [[1,2,(3,4)],[5,6,(7,8)],[9,10,(11,12)]]
>>> for x in alist: del x[-1]       # <-------------
... 
>>> alist
[[1, 2], [5, 6], [9, 10]]
Run Code Online (Sandbox Code Playgroud)

  • @ S.Lott:当然http://www.ideone.com/4JajX.实际上,很明显第一个版本较慢,因为整个列表都被复制了. (3认同)