web-dev-qa-db-ja.com

Pythonで辞書からすべての値を抽出する方法

辞書d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}があります。

dのすべての値をリストlに抽出する方法を教えてください。

136
Naveen C.

辞書キー12、および3のみが必要な場合は、your_dict.keys()を使用します。

辞書の値-0.3246-0.9185、および-3985のみが必要な場合は、your_dict.values()を使用してください。

キーと値の両方が欲しいならば、タプルのリストyour_dict.items()を返す[(key1, value1), (key2, value2), ...]を使います。

268
Pierre Bourdon

values()を使う

>>> d = {1:-0.3246, 2:-0.9185, 3:-3985}

>>> d.values()
<<< [-0.3246, -0.9185, -3985]
32
zeekay

すべての値が必要な場合は、これを使用してください。

dict_name_goes_here.values()

すべてのキーが必要な場合は、これを使用してください。

dict_name_goes_here.keys()

あなたがすべてのアイテム(キーと値の両方)を欲しいならば、私はこれを使うでしょう:

dict_name_goes_here.items()
12
Tyler Crompton

辞書のvalues()メソッドを呼び出します。

9
David Heffernan

すべての値が必要な場合は、これを使用してください。

dict_name_goes_here.values()
5
Govind Sagar

キーを見るには:

for key in d.keys():
    print(key)

各キーが参照している値を取得するには

for key in d.keys():
    print(d[key])

リストに追加する:

for key in d.keys():
    mylist.append(d[key])
3
Odysseus Ithaca
d = <dict>
values = d.values()
3
Gabriel Ross

ネストされた辞書、辞書のリスト、およびリストされた辞書の辞書については、...を使用できます

def get_all_values(d):
    if isinstance(d, dict):
        for v in d.values():
            yield from get_all_values(v)
    Elif isinstance(d, list):
        for v in d:
            yield from get_all_values(v)
    else:
        yield d 

例:

d = {'a': 1, 'b': {'c': 2, 'd': [3, 4]}, 'e': [{'f': 5}, {'g': 6}]}

list(get_all_values(d)) # returns [1, 2, 3, 4, 5, 6]

PS:yieldが大好きです。 ;-)

2
Michael Dorner

ピクトニックダックタイピングは、原則として、オブジェクトができること、すなわちその特性および方法を決定するべきである。辞書オブジェクトを見れば、dict.keys()またはdict.values()メソッドのうち少なくとも1つがあると推測することができます。実行時に型チェックが行われるプログラミング言語、特にアヒルタイピングの性質を持つプログラミング言語での今後の作業には、このアプローチを使用するようにしてください。

0
dr_dronych