私は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'])
あなたは彼らが追加されたために、順序などのアイテムにアクセスする能力を保持していますが、高速アクセス・バイ・キーのdict(ハッシュ)があなたを与える持っています。あなたは「自然な」シーケンス番号をしたい場合は、通常通り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のdictもリストにすることができます。 – wim