Pythonの辞書からすべての値を抽出するにはどうすればよいですか?


177

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

のすべての値をdリストに抽出するにはどうすればよいlですか?

回答:


338

あなただけの辞書のキーが必要な場合は123:使用しますyour_dict.keys()

あなただけの辞書の値が必要な場合は-0.3246-0.9185、および-3985を使用しますyour_dict.values()

キーと値の両方が必要な場合your_dict.items()は、タプルのリストを返す:を使用します[(key1, value1), (key2, value2), ...]


64
Python 3を使用list(your_dict.values())している場合は、(dict_valuesオブジェクトではなく)リストを取得するために使用する必要があります。
Matthias Braun 2013年

40

使用する values()

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

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

16

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

dict_name_goes_here.values()

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

dict_name_goes_here.keys()

すべてのアイテム(キーと値の両方)が必要な場合は、これを使用します。

dict_name_goes_here.items()


9

ネストされたdicts、dictsのリスト、およびリストされたdictsのdictsの場合、...使用できます

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です。;-)





3

キーを表示するには:

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

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

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

リストに追加:

for key in d.keys():
    mylist.append(d[key])

リスト内包表記も同様に役立ちます
DeafaltCoder

list = [d [key] for d.keys()]のキー
DeafaltCoder

0

Pythonicダックタイピングは、原則として、オブジェクトが実行できること、つまり、そのプロパティとメソッドを決定する必要があります。辞書オブジェクトを見ると、次の少なくとも1つを持っていると推測できます:dict.keys()またはdict.values()メソッド。実行時に型チェックが行われるプログラミング言語、特にアヒル型の性質を持つプログラミング言語を使用する将来の作業では、このアプローチを使用する必要があります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.