gpt4 book ai didi

python - 如何在迭代列表时迭代其键时更改字典

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:04 24 4
gpt4 key购买 nike

  1. 我有一个列表 l。
  2. 我有一本字典 d。

我想遍历 l。对于任何列表项,我想遍历 d.keys。

如果满足某些条件,我想“更新”我的字典。

我天真地试图嵌套两个 for 循环并放入一个 if 语句——一个人不能改变一个正在迭代的对象的长度。

d = {'this': '1', 'is': '2', 'a': '3', 'list': '4'}

l = ['A', 'B', 'C', 'D', 'E']

for word in l:
for key in d.keys():
if len(key) < 2:#some condition
d.pop(key)
else:
print(word, key)

这是我得到的输出:

A this
A is
Traceback (most recent call last):
File "untitled3.py", line 6, in <module>
for key in d.keys():
RuntimeError: dictionary changed size during iteration

最佳答案

您可以循环遍历一个副本,而不是遍历 d

d = {'this': '1', 'is': '2', 'a': '3', 'list': '4'}

l = ['A', 'B', 'C', 'D', 'E']

for word in l:
for key in d.copy().keys(): # Notice the change
if len(key) < 2:#some condition
d.pop(key)
else:
print(word, key)

关于python - 如何在迭代列表时迭代其键时更改字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54161688/

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