gpt4 book ai didi

python - 删除 python 列表字典中的最后一个元素

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:36 26 4
gpt4 key购买 nike

在列表字典中删除每个列表的最后一个元素的更 pythonic 或更有效的方法是什么?

举个例子:

listDict = {'tom': [-2,10,2,-8], 'sam': [-9,-10,-10,-7]}

并将其转化为:

listDict = {'tom': [-2,10,2], 'sam': [-9,-10,-10]}

这是我目前正在做的:

new = {}
for t,item in listDict.iteritems():
new[t] = [item[0], item[1], item[2]]
listDict= new

最佳答案

与此解决方案相比,随着列表长度的增加,Blender 的答案变得非常低效:

for k, v in listDict.items():
v.pop()

对于你的例子listDict,差别不大,只有27%。但是使用具有 100 个键和长度从 50 到 100 的列表的字典,并弹出其中的 50 个,字典理解方法花费的时间超过 12 倍。这是因为此解决方案修改现有列表,而不是每次都创建每个列表的副本。

除非您是 cheating,否则恐怕没有单行版本。 .我之所以提到这一点,是为了防止某些 dofus 觉得有必要在评论中指出它。 不要使用 dict/list comprehensions 来应对副作用。

当然你可以像下面这样在一行中完成,但是PEP8说“而不是”:

for k, v in listDict.items(): v.pop()

关于python - 删除 python 列表字典中的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11912097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com