Python - 如何删除列表列表中的最后一个元素?

时间:2014-12-15 15:33:42

标签: python list

我有一个像这样的列表列表:

listadr = [[a, b], [1, 2]]

如何删除最后一个列表的最后一个条目以获得此结果?

result = [[a, b], [1]]

我试过了

for adr in listadr:
   for adr[1] in adr:
      del adr[-1]

但是这段代码删除了' b' ...

2 个答案:

答案 0 :(得分:8)

仅删除最后一个元素的最后一个元素,如此

listadr = [['a', 'b'], [1, 2]]
del listadr[-1][-1]
print(listadr)
# [['a', 'b'], [1]]

listadr[-1]将获取listadr的最后一个元素,listadr[-1][-1]将获取listadr的最后一个元素的最后一个元素,并使用del将其终止。

或者,您可以

listadr[-1] = listadr[-1][:-1]

这会将listadr的最后一个元素替换为listadr的最后一个元素,不包括其最后一个元素。 listadr[-1][:-1]表示获取所有元素,直到listadr的最后一个元素的最后一个元素。

答案 1 :(得分:5)

没有必要在这里循环,只需使用[-1][-1]索引列表:

>>> listadr = [['a', 'b'], [1, 2]]
>>> del listadr[-1][-1]
>>> listadr
[['a', 'b'], [1]]

如果您还想要该项目,请在最后一个子列表中使用list.pop()

>>> listadr = [['a', 'b'], [1, 2]]
>>> listadr[-1].pop()
2
>>> listadr
[['a', 'b'], [1]]