我有以下字典:
mydict = {('a', 'b'): 28.379,
('c', 'd'): 32.292,
('e', 'f'): 61.295,
('g', 'h'): 112.593,
('i', 'j'): 117.975}
我想用 1 到 5 的范围替换所有值,但保持键的顺序。结果,我会得到这个:
mydict = {('a', 'b'): 1,
('c', 'd'): 2,
('e', 'f'): 3,
('g', 'h'): 4,
('i', 'j'): 5}
字典的长度实际上是22000,所以我需要一个从1到22000的范围。 我该怎么做?
提前致谢。
请您参考如下方法:
使用 enumerate 迭代键,您可以:
mydict = {('a', 'b'): 28.379,
('c', 'd'): 32.292,
('e', 'f'): 61.295,
('g', 'h'): 112.593,
('i', 'j'): 117.975}
for i, key in enumerate(mydict): # iterates on the keys
mydict[key] = i
print(mydict)
# {('a', 'b'): 0, ('c', 'd'): 1, ('e', 'f'): 2, ('g', 'h'): 3, ('i', 'j'): 4}
重要说明:从 Python 3.7 开始才正式订购字典(并且从 3.6 开始在 CPython 实现中),因此这对于旧版本的 Python 来说意义不大。
回答您的评论:enumerate采用可选的第二个参数 start(默认为 0)
因此,如果您想从 1 开始,只需执行以下操作:
for i, key in enumerate(mydict, start=1): # iterates on the keys
mydict[key] = i
