gpt4 book ai didi

python - 如何在 python 中从 orderedDict 中删除条目

转载 作者:太空宇宙 更新时间:2023-11-04 07:21:23 35 4
gpt4 key购买 nike

我正在尝试根据值从字典中获取前 20 个条目。我使用 orderedDict 按值对条目进行排序。但是当我试图从 orderedDict 中删除一个条目时(以保持 orderedDict 的恒定长度,即 20),它没有发生。

我写了下面的代码:

while linecount>0:
line=images.readline().split()
#compute "score" for each line
if (len(result)<20):
result.update({(str(line)):score})
else:
if(len(result)==20):
result=OrderedDict(sorted(result.items(), key=lambda t: t[1]))
if(result.items()[0][1]<score):
del result.items()[0]
temp=str(line)
result.update({temp:score})

但是删除/删除不会发生在这一步:

 del result.items()[0]

一旦达到那个(21)值,结果的长度保持为 21

我做错了什么,我还能怎么做?

最佳答案

您正在从 .items() 返回的列表中删除一个项目。您需要从字典中删除:

result.popitem(last=False)

OrderedDict.popitem()删除后返回第一个或最后一个键值。将 last 设置为 False 表示您想删除第一个。

请注意,您可以第一个值进行测试:

if result.values()[0] < score:

我也只对一个元素使用键分配而不是 .update():

result[str(line)] = score  # instead of temp=str(line); result.update({temp:score})

关于python - 如何在 python 中从 orderedDict 中删除条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17422401/

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