gpt4 book ai didi

python - 如何解决迭代错误期间字典更改大小?

转载 作者:太空狗 更新时间:2023-10-29 17:39:05 27 4
gpt4 key购买 nike

我想弹出字典中所有大值及其键,并保留最小值。这是我程序的一部分

for key,value in dictionary.items():
for key1, value1 in dictionary.items():
if key1!= key and value > value1:
dictionary.pop(key)
print (dictionary)

结果

RuntimeError: dictionary changed size during iteration    

我怎样才能避免这个错误?

最佳答案

在Python3中,试试

for key in list(dict.keys()):
if condition:
matched
del dict[key]

当循环一个字典来更新它的键时,还有一件事应该小心:

代码1:

keyPrefix = ‘keyA’
for key, value in Dict.items():
newkey = ‘/’.join([keyPrefix, key])
Dict[newkey] = Dict.pop(key)

代码2:

keyPrefix = ‘keyA’
for key, value in Dict.keys():
newkey = ‘/’.join([keyPrefix, key])
Dict[newkey] = Dict.pop(key)

code1/code2 的结果是:

{‘keyA/keyA/keyB’ : ”, ‘keyA/keyA/keyA’: ”}

我解决这个意外结果的方法:

    Dict = {‘/’.join([keyPrefix, key]): value for key, value in Dict.items()}

链接:https://blog.gainskills.top/2016/07/21/loop-a-dict-to-update-key/

关于python - 如何解决迭代错误期间字典更改大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13519644/

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