web-dev-qa-db-ja.com

どうやって(値から検索するのではなく)Pythonで直接辞書キーを変数として取得することができますか?

この基本的な質問で申し訳ありませんが、これに対する私の検索は辞書のキーをその値に基づいて取得する方法以外は何も得られません。辞書にたくさんのエントリがある場合、値によっては2つ以上のキーが返されることがあります。

mydictionary={'keyname':'somevalue'}
for current in mydictionary:

   result = mydictionary.(some_function_to_get_key_name)[current]
   print result
   "keyname"

その理由は、これらをドキュメントに印刷しているので、キー名と値を使用したいからです。

以下のメソッドを見ましたが、これは単にキーの値を返すようです

get(key[, default])
171
Rick

次のようにキーを反復処理する必要があります。

for key in mydictionary:
   print "key: %s , value: %s" % (key, mydictionary[key])
217
systempuntoout

キーと値を印刷したい場合は、以下を使用してください。

for key, value in my_dict.iteritems():
    print key, value
86
Escualo

その理由は、これらをドキュメントに印刷しているので、キー名と値を使用したいからです。

上記の要件に基づいて、これは私が提案するものです:

keys = mydictionary.keys()
keys.sort()

for each in keys:
    print "%s: %s" % (each, mydictionary.get(each))
77
Manoj Govindan

辞書に次のようなペアが1つ含まれているとします。

d = {'age':24}

それからあなたは得ることができます

field, value = d.items()[0]

Python 3.5の場合は、次のようにします。

key = list(d.keys())[0]
37
Sudhin

keys=[i for i in mydictionary.keys()]またはkeys = list(mydictionary.keys())

11
kurian

それと同じくらい簡単:

mydictionary={'keyname':'somevalue'}
result = mydictionary.popitem()[0]

あなたはあなたの辞書を修正し、最初にそれのコピーを作るべきです

9
Libert

Dictionary(i)を繰り返し処理するとキーが返され、それを使用して値が取得されます(i)。

for i in D:
    print "key: %s, value: %s" % (i, D[i])
5
splucena

私が時々することは私が私が私が私がストリングとしてアクセスする必要があると感じるものは何でもできるようにするために別の辞書を作成することです。それから私は構築するためにキーに一致する複数の辞書を繰り返します。説明として最初の列を持つテーブル。

dict_names = {'key1': 'Text 1', 'key2': 'Text 2'}
dict_values = {'key1': 0, 'key2': 1} 

for key, value in dict_names.items():
    print('{0} {1}'.format(dict_names[key], dict_values[key])

あなたは簡単にデータを一致させるために膨大な量の辞書を作ることができます(私は辞書を使うと常にキー名としてよく知られているものを参照することができるという事実が好きです)

はい、私は辞書を使って関数の結果を保存しているので、これらの関数を一度だけ呼び出すたびに実行してからいつでも結果にアクセスする必要はありません。

編集:私の例ではキー名は実際には重要ではありません(私は個人的に私の一致する辞書のどれかから単一の値を選ぶほうが簡単なので同じキー名を使うのが好きです)同じ

3
s3icc0

辞書のキーを解凍する*を使うことができます。例:

d = {'x': 1, 'y': 2}
t = (*d,)
print(t) # ('x', 'y')
3
Georg

Python 3の場合キーだけを取得したい場合はこれを使用してください。値が必要な場合は、print(key)をprint(values)に置き換えます。

for key,value in my_dict:
  print(key)
3
siddharth