キーは不変で変更されません。それらを変えることはできません。 考えてみましょう:
>>> a = 42
>>> di = {a:'forty-two'}
>>> di
{42: 'forty-two'}
辞書自体は単にキーとして42
を持っています。辞書を設定するのにa
を使用したという事実は全く無関係です。同様に、a
が42なので、b = a + 1
と書くと、b
は43
となり、後でa
を10
に変更すると、この事実は変更されません。その場合b
は魔法のように11
になりません。
新しい番号にa
を結合して、キーとしてその新しい番号を使用したい場合は、手動で辞書を変更する必要があります:
>>> old_a = a #store old value of a
>>> a = 10 #assign new value to a
>>> di[a] = di[old_a] #assign value to new key
>>> del(di[old_a]) #delete old key-value pair
>>> di
{10: 'forty-two'}
これにISNことを示唆している、やや複雑です非常に無色であり、あなたがしようとしていることは何でも行うためのより良い方法があるだろう。
編集上のキーを交換するプロセスはŁ[email protected]として、.pop()
を使用して合理化することができますが、上記のコメントで指摘:
old_a = a
a = 10
di[a] = d.pop(old_a)
このように自動的に割り当てるプロセスで古いキーを削除します新しいキーへのその値。
何が起こったのか試してみましたか? –
'x'ではなく' a'を意味しますか? – Carcigenicate
「*辞書に渡す」という意味はありませんか?どのようにそれを渡すのですか? –