Jak mogę wyodrębnić wszystkie wartości ze słownika w Pythonie?

177

Mam słownik d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}.

Jak wyodrębnić wszystkie wartości ddo listy l?

Naveen C.
źródło

Odpowiedzi:

339

Jeśli potrzebujesz tylko słownika klucze 1, 2i 3użycie: your_dict.keys().

Jeśli trzeba tylko wartości słownikowych -0.3246, -0.9185i -3985użycie: your_dict.values().

Jeśli chcesz zarówno klucze, jak i wartości, użyj: your_dict.items()który zwraca listę krotek [(key1, value1), (key2, value2), ...].

Pierre Bourdon
źródło
64
Jeśli używasz Pythona 3, będziesz chciał użyć list(your_dict.values())do pobrania listy (a nie obiektu dict_values).
Matthias Braun
40

Posługiwać się values()

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

>>> d.values()
<<< [-0.3246, -0.9185, -3985]
zeekay
źródło
16

Jeśli chcesz wszystkie wartości, użyj tego:

dict_name_goes_here.values()

Jeśli chcesz wszystkie klucze, użyj tego:

dict_name_goes_here.keys()

JEŚLI chcesz wszystkie elementy (zarówno klucze, jak i wartości), użyłbym tego:

dict_name_goes_here.items()
Tyler Crompton
źródło
12

Wywołaj values()metodę na dykt.

David Heffernan
źródło
9

Do zagnieżdżonych dykt, list dykt i dykt z list wyszczególnionych dykt, ... możesz użyć

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 

Przykład:

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: Kocham yield. ;-)

Michael Dorner
źródło
7

W przypadku Pythona 3 potrzebujesz:

list_of_dict_values = list(dict_name.values())
Faaiz Qadri
źródło
Dziękuję za wspomnienie, że metoda list()jest potrzebna
dr Sabbir Ahmed
5

Jeśli chcesz wszystkie wartości, użyj tego:

dict_name_goes_here.values()
Govind Sagar
źródło
3
d = <dict>
values = d.values()
Gabriel Ross
źródło
3

Aby zobaczyć klucze:

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

Aby uzyskać wartości, do których odwołuje się każdy klucz:

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

Dodaj do listy:

for key in d.keys():
    mylist.append(d[key])
Odyseusz Itaka
źródło
zrozumienie listy również może pomóc
DeafaltCoder
list = [d [key] for key in d.keys ()]
DeafaltCoder
0

Pythonic kacze typowanie powinno w zasadzie określać, co obiekt może zrobić, tj. Jego właściwości i metody. Patrząc na obiekt słownika, można spróbować zgadnąć, że ma co najmniej jedną z następujących metod : dict.keys()lub dict.values(). Powinieneś spróbować użyć tego podejścia do przyszłej pracy z językami programowania, których sprawdzanie typów odbywa się w czasie wykonywania, szczególnie z tymi, które mają charakter pisania kaczego.

dr_dronych
źródło
0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
Shriyans
źródło