我试图在一次操作中遍历dict
两次,并得到一些意想不到的结果。我想做的是,
>>> temp = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> for k in temp.keys():
print([i for i in temp.keys() if i != k])
['a', 'b', 'c']
['a', 'b', 'c']
['a', 'b', 'c']
['a', 'b', 'c']
我期望的是,
['b', 'c', 'd']
['a', 'c', 'd']
['a', 'b', 'd']
['a', 'b', 'c']
事实上,当我执行以下操作时,我发现当不在列表理解步骤中时,循环似乎工作正常
>>> for k in temp.keys():
print([i for i in temp.keys()], ' ', k)
['a', 'b', 'c', 'd'] a
['a', 'b', 'c', 'd'] b
['a', 'b', 'c', 'd'] c
['a', 'b', 'c', 'd'] d
我尝试使用deepcopy
的{{1}}进行相同的代码,但是得到了相同的结果,因此即使迭代两个temp
似乎也可以实现这种行为。任何帮助将不胜感激。