【发布时间】:2018-01-14 22:49:33
【问题描述】:
我在 python 中有字典,键为“字符串”,值为整数列表。用键和值迭代dict,如果不满足某些条件,则删除列表中的值。 迭代不正确。
例如,
my_dict = {"emp_id":[100,200]}
for emp,ids in my_dict.iteritems():
print "Emp :",emp
for id in ids:
print "Id :",id
if not id > 1000:
my_dict.get(emp).remove(id)
continue
输出:
Emp : emp_id
Id : 100
它不会迭代列表中的第二个值 (200)。不确定可能是什么问题。 是否由于删除了字典中的值。
如何解决这个问题。我们是否需要复制到另一个对象并从中删除。
【问题讨论】:
-
问题是你正在改变列表。
-
另外,没有理由在内部循环中调用
mydict.get;您已经拥有对该列表的引用,ids。 -
另外,循环末尾的
continue不是必需的。 -
既然可以写
if id <= 1000:,为什么还要写if not id > 1000:?让头痛持续下去?
标签: python python-2.7 dictionary for-loop