我有一个像这样的列表列表:
listadr = [[a, b], [1, 2]]
如何删除最后一个列表的最后一个条目以获得此结果?
result = [[a, b], [1]]
我试过了
for adr in listadr:
for adr[1] in adr:
del adr[-1]
但是这段代码删除了' b' ...
答案 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]]