【发布时间】:2019-06-07 06:30:17
【问题描述】:
- 我有一个列表 l。
- 我有一本字典 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
【问题讨论】:
-
我认为应该使用与条件不匹配的键构建一个新字典
标签: python python-3.x dictionary for-loop iteration