【发布时间】:2014-12-14 13:40:49
【问题描述】:
GeoFigs = {'Populus':0, 'Tristidia':1, 'Albus':2, 'Fortuna Major':3, 'Rubeus':4,
'Acquisitio':5, 'Conjunctivo':6, 'Caput Draconis':7, 'Laetita':8, 'Carcer':9,
'Amissio':10, 'Puella':11, 'Fortuna Minor':12, 'Puer':13, 'Cauda Draconis':14, 'Via':15}
KeyGeo = dict.copy(GeoFigs)
for key in KeyGeo:
print KeyGeo[key]
keychange = KeyGeo[key]
newValue = key
del KeyGeo[key]
KeyGeo[keychange] = newValue
当我运行 for 循环时,它会跳过一些产生的键
(0, 'Populus'), (1, 'Tristidia'), ('Carcer', 9), (3, 'Fortuna Major'), (4, 'Rubeus'),
(5, 'Acquisitio'), (6, 'Conjunctivo'), (7, 'Caput Draconis'), ('Puer', 13), (10, 'Amissio'),
(11, 'Puella'), (12, 'Fortuna Minor'), (2, 'Albus'), (14, 'Cauda Draconis'), (15, 'Via'), ('Laetita', 8)]
知道为什么它只跳过第 3 和第 9 吗?
【问题讨论】:
-
字典通常是基于散列的实现。因此,值的存储顺序可能并不总是相同。
-
在迭代集合时,您正在从集合中删除元素。不要这样做。从不。
标签: python for-loop dictionary