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?

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), ...].


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]

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()


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. ;-)


7

Para Python 3, você precisa:

list_of_dict_values = list(dict_name.values())

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()


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])

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.


0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.