我正试图从字典中获得前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()
返回的列表中删除一个项。您需要从字典中删除:^{} 返回删除后的第一个或最后一个键值。将
last
设置为False
要删除第一个信号的信号。注意,您可以对进行测试,只要第一个值:
我也只对一个元素使用键赋值而不是
.update()
:相关问题 更多 >
编程相关推荐