Como posso extrair todos os valores de um dicionário em Python?

177

Eu tenho um dicionário d = {1:-0.3246, 2:-0.9185, 3:-3985, ...} .

Como extraio todos os valores de dem uma lista l?

Naveen C.
fonte

Respostas:

338

Se você só precisa as chaves de dicionário 1, 2e 3uso:your_dict.keys() .

Se você só precisa os valores de dicionário -0.3246, -0.9185e -3985uso:your_dict.values() .

Se você deseja chaves e valores, use: o your_dict.items()que retorna uma lista de tuplas [(key1, value1), (key2, value2), ...].

Pierre Bourdon
fonte
64
Se você estiver usando o Python 3, precisará usar list(your_dict.values())para obter uma lista (e não um objeto dict_values).
Matthias Braun
40

Usar values()

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

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

Se você deseja todos os valores, use o seguinte:

dict_name_goes_here.values()

Se você deseja todas as chaves, use o seguinte:

dict_name_goes_here.keys()

Se você quiser todos os itens (chaves e valores), eu usaria isso:

dict_name_goes_here.items()
Tyler Crompton
fonte
12

Chame o values()método no ditado.

David Heffernan
fonte
9

Para dict aninhados, listas de dictos e dictos de dictos listados, ... você pode usar

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 

Um exemplo:

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

Michael Dorner
fonte
7

Para Python 3, você precisa:

list_of_dict_values = list(dict_name.values())
Faaiz Qadri
fonte
Obrigado por mencionar que o método list()é necessário
Md. Sabbir Ahmed
5

Se você deseja todos os valores, use o seguinte:

dict_name_goes_here.values()
Govind Sagar
fonte
3
d = <dict>
values = d.values()
Gabriel Ross
fonte
3

Para ver as teclas:

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

Para obter os valores que cada chave está fazendo referência:

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

Adicionar a uma lista:

for key in d.keys():
    mylist.append(d[key])
Odysseus Ithaca
fonte
compreensão da lista pode ajudar também
DeafaltCoder
lista = [d [] chave para a chave em d.keys ()]
DeafaltCoder
0

A tipagem de patos pitônica deve, em princípio, determinar o que um objeto pode fazer, isto é, suas propriedades e métodos. Observando um objeto de dicionário, pode-se tentar adivinhar que ele possui pelo menos um dos seguintes itens:dict.keys() ou dict.values()métodos. Você deve tentar usar essa abordagem para trabalhos futuros com linguagens de programação cuja verificação de tipo ocorre em tempo de execução, especialmente aquelas com a natureza de digitação de pato.

dr_dronych
fonte
0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
Shriyans
fonte