Як я можу отримати всі значення зі словника в Python?


177

У мене є словник d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}.

Як витягнути всі значення dу список l?

Відповіді:


339

Якщо вам потрібні тільки ключі словника 1, 2і 3використання: 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).
Маттіас Браун

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

Для вкладених датців, списків диктовок та диктовок перелічених диктів, ... ви можете використовувати

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


list = [d [ключ] для ключа в d.keys ()]
DeafaltCoder

0

Пітонічний тип качки повинен в принципі визначати, що може зробити об'єкт, тобто його властивості та методи. Дивлячись на об’єкт словника, можна спробувати здогадатися, що він має принаймні одне з наступних: dict.keys()або dict.values()методів. Вам слід спробувати використати цей підхід для подальшої роботи з мовами програмування, перевірка типу яких відбувається під час виконання, особливо з типом качки.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.