我有一個python字典。重置字典新鍵
A=[0:'dog',1:'cat',3:'fly',4,'fish',6:'lizard']
我想根據range(len(A))
(自然增量)重置鍵,它應該是這樣的:
new_A=[0:'dog',1:'cat',2:'fly',3:'fish',4:'lizard']
我怎麼能這樣做呢?
我有一個python字典。重置字典新鍵
A=[0:'dog',1:'cat',3:'fly',4,'fish',6:'lizard']
我想根據range(len(A))
(自然增量)重置鍵,它應該是這樣的:
new_A=[0:'dog',1:'cat',2:'fly',3:'fish',4:'lizard']
我怎麼能這樣做呢?
這裏有兩個py2.x和py3.x一個工作示例:
A = {0: 'dog', 1: 'cat', 3: 'fly', 4: 'fish', 6: 'lizard'}
B = {i: v for i, v in enumerate(A.values())}
print(B)
如果你想在舊密鑰的升序指定新的密鑰,然後
new_A = {i: A[k] for i, k in enumerate(sorted(A.keys()))}
詞典是沒有命令。如果你的鍵是增量整數,你也可以使用一個列表。
new_A =名單(A.values())
如果你想保持鍵
A={0:'dog',1:'cat',3:'fly',4,'fish',6:'lizard'}
new_A=dict((i,A[k]) for i,k in enumerate(sorted(A.keys()))
如果你想創建排序以及由密鑰訪問,同階,那麼你想要一個OrderedDict
。
>>> from collections import OrderedDict
>>> d=OrderedDict()
>>> d['Cat'] = 'cool'
>>> d['Dog'] = 'best'
>>> d['Fish'] = 'cold'
>>> d['Norwegian Blue'] = 'ex-parrot'
>>> d
OrderedDict([('Cat', 'cool'), ('Dog', 'best'), ('Fish', 'cold'), ('Norwegian Blue', 'ex-parrot')])
>>> d.values()
odict_values(['cool', 'best', 'cold', 'ex-parrot'])
>>> d.keys()
odict_keys(['Cat', 'Dog', 'Fish', 'Norwegian Blue'])
您保留訪問項目爲他們添加順序序列的能力,但你也有快速訪問按哪個鍵的字典(散)給你。如果你想「自然」序列號使用enumerate
正常:
>>> for i,it in enumerate(d.items()):
... print('%5d %15s %15s' % (i,it[0], it[1]))
...
0 Cat cool
1 Dog best
2 Fish cold
3 Norwegian Blue ex-parrot
>>>
字典使用大括號而不是方的人 – depperm
@vaultah但是,這將不保留值的相對順序,會嗎? – syntonym
與鍵0-4的字典也可能只是一個列表。 – wim