web-dev-qa-db-ja.com

Python辞書は値を置き換えます

現時点では、20000に加えて、単純に一意の単語と、その単語がソーステキストで使用された回数(イタリア語のDanteの神曲)を含む辞書があります。

値を実際の定義に置き換えてすべてのエントリを処理したいと思います。置換するために値として数値を持つキーワードを反復処理する簡単な方法はありますか(意味を調査するときに)?

辞書が始まります:

{'corse': 378, 'cielo,': 209, 'mute;': 16, 'torre,': 11, 'corsa': 53, 'assessin': 21, 'corso': 417, 'Tolomea': 21}  # etc.

調査および定義するキーワードを提案するアプリケーションの並べ替え。

36
user1478335

特定の値(または値のタイプ)を選択することはできません。逆インデックス(マップ番号をキー(のリスト)に戻す)を作成するか、毎回all値をループする必要があります。

とにかく任意の順序で数字を処理している場合は、すべてのアイテムをループすることもできます。

for key, value in inputdict.items():
    # do something with value
    inputdict[key] = newvalue

それ以外の場合は、逆インデックスを使用します。

from collections import defaultdict

reverse = defaultdict(list)
for key, value in inputdict.items():
    reverse[value].append(key)

これで、値によってキーを検索できます。

for key in reverse[value]:
    inputdict[key] = newvalue
55
Martijn Pieters

declarativeソリューションが必要な場合は、 dict.update() を使用してdictの値を変更できます。

次のいずれか:

my_dict.update({'key1': 'value1', 'key2': 'value2'})

またはそのような:

my_dict.update(key1='value1', key1='value2')
30
Rotareti

辞書を反復処理するとキーが取得されるため、辞書がdataという変数にあり、定義を取得する関数find_definition()があると仮定すると、次のようなことができます。

for Word in data:
    data[Word] = find_definition(Word)
7
Andrew Clark