我有一个这样的列表列表:
listadr = [[a, b], [1, 2]]
Run Code Online (Sandbox Code Playgroud)
如何删除最后一个列表的最后一个条目才能得到这个结果?
result = [[a, b], [1]]
Run Code Online (Sandbox Code Playgroud)
我试过了
for adr in listadr:
for adr[1] in adr:
del adr[-1]
Run Code Online (Sandbox Code Playgroud)
但是这段代码也删除'b'......
只删除最后一个元素的最后一个元素,就像这样
listadr = [['a', 'b'], [1, 2]]
del listadr[-1][-1]
print(listadr)
# [['a', 'b'], [1]]
Run Code Online (Sandbox Code Playgroud)
listadr[-1]将获得的最后一个元素listadr,并listadr[-1][-1]会得到的最后一个元素的最后一个元素listadr,并杀死它del.
或者,你可以做到
listadr[-1] = listadr[-1][:-1]
Run Code Online (Sandbox Code Playgroud)
这将替换排除其最后一个元素listadr的最后一个元素的listadr最后一个元素.listadr[-1][:-1]意味着获取所有元素,直到最后一个元素的最后一个元素listadr.
这里不需要循环,只需使用[-1][-1]以下内容索引列表:
>>> listadr = [['a', 'b'], [1, 2]]
>>> del listadr[-1][-1]
>>> listadr
[['a', 'b'], [1]]
Run Code Online (Sandbox Code Playgroud)
如果您还想要该项目,请使用list.pop()最后一个子列表:
>>> listadr = [['a', 'b'], [1, 2]]
>>> listadr[-1].pop()
2
>>> listadr
[['a', 'b'], [1]]
Run Code Online (Sandbox Code Playgroud)