Как получить список значений словаря в Python

Раздел: Основы Python -> Типы данных

Основной способ: метод values()

Самый прямой и эффективный путь получить все значения словаря в виде списка использование встроенного метода values() в сочетании с конструктором list().

d = {'a': 1, 'b': 2, 'c': 3}
values_list = list(d.values())
print(values_list)  # [1, 2, 3]

Set str python (множество из строки в python)

Возможные проблемы:

  • Порядок значений в словаре (начиная с Python 3.7) сохраняется в порядке вставки. Если порядок важен, метод values() его сохраняет.
  • Метод возвращает представление (view), которое изменяется динамически при изменении словаря. Приведение к list фиксирует копию.

Как получить список значений, если нужно отфильтровать или преобразовать каждое значение?

Используйте генератор списка (list comprehension).

d = {'x': 10, 'y': 20, 'z': 30}
squared = [v**2 for v in d.values()]
print(squared)  # [100, 400, 900]

Python переменная время (переменные для времени в python)

Типичная ошибка:

Попытка применить условие к ключам при генерации значений. Если нужно отфильтровать по ключу, используйте d[k] for k in d if ...

Как получить список значений с помощью функции map?

Функция map() применяет заданную функцию ко всем элементам итерируемого объекта.

d = {'a': 'hello', 'b': 'world'}
to_upper = list(map(lambda v: v.upper(), d.values()))
print(to_upper)  # ['HELLO', 'WORLD']

Python объект тип (тип объекта в python)

Как получить значения из вложенного словаря (словарь словарей)?

Потребуется вложенный генератор.

nested = {'first': {'name': 'Alice', 'age': 30}, 'second': {'name': 'Bob', 'age': 25}}
names = [inner['name'] for inner in nested.values()]
print(names)  # ['Alice', 'Bob']

вещественные значения python (вещественные значения в python)

Ошибка KeyError:

Если внутренние словари могут не содержать нужного ключа, используйте метод get() с значением по умолчанию.

Как получить список значений, если ключи уникальны, но значения могут повторяться, и нужно сохранить только уникальные?

Оберните результат в set() для удаления дубликатов (порядок не гарантирован) или используйте dict.fromkeys().

d = {'a': 1, 'b': 2, 'c': 1, 'd': 3}
unique_values = list(set(d.values()))
print(unique_values)  # [1, 2, 3] (порядок может отличаться)

вывести тип данных python (вывод типа данных в python)

Как получить все значения из словаря, содержащего списки (например, значение каждого ключа это список), объединив их в один плоский список?

Используйте вложенный генератор или itertools.chain.

d = {'list1': [1, 2], 'list2': [3, 4]}
from itertools import chain
flat = list(chain.from_iterable(d.values()))
print(flat)  # [1, 2, 3, 4]
- логические значения python (логические значения в python)
- длина переменной python (длина числа и переменной в python)
- определение объекта python (определение типа объекта в python)

Расширенные примеры и нестандартные случаи

Пример 1: Значения с проверкой типа

Пример
d = {'a': 'text', 'b': 42, 'c': 3.14, 'd': None}
# Выбрать только числа (int или float)
numbers = [v for v in d.values() if isinstance(v, (int, float))]
print(numbers)  # [42, 3.14]
Результат: [42, 3.14]

Пример 2: Получение значений по порядку, соответствующему отсортированным ключам

Пример
d = {'z': 100, 'a': 50, 'm': 75}
sorted_values = [d[k] for k in sorted(d)]
print(sorted_values)  # [50, 75, 100]
Результат: [50, 75, 100]

Пример 3: Использование класса collections.ChainMap для объединения нескольких словарей

Пример
from collections import ChainMap
d1 = {'x': 1, 'y': 2}
d2 = {'y': 3, 'z': 4}
cm = ChainMap(d1, d2)
all_values = list(cm.values())
print(all_values)  # [1, 2, 4] (y берется из первого словаря)
Результат: [1, 2, 4]

Важно:

ChainMap выдаёт значения по порядку первого найденного ключа. Результат может быть неожиданным при одинаковых ключах.

Пример 4: Значения из вложенного словаря произвольной глубины с рекурсией

Пример
def extract_values(obj):
    if isinstance(obj, dict):
        for v in obj.values():
            yield from extract_values(v)
    else:
        yield obj

deep = {'a': {'b': {'c': 1}, 'd': 2}, 'e': 3}
result = list(extract_values(deep))
print(result)  # [1, 2, 3]
Результат: [1, 2, 3]

Пример 5: Использование оператора * для распаковки значений в список

Пример
d = {'a': 10, 'b': 20, 'c': 30}
values_list = [*d.values()]
print(values_list)  # [10, 20, 30]
Результат: [10, 20, 30]

Пример 6: Получение значений с применением нескольких условий

Пример
d = {'a': 5, 'b': 12, 'c': 7, 'd': 15}
# Значения больше 10 и меньше 15
filtered = [v for v in d.values() if 10 < v < 15]
print(filtered)  # [12]
Результат: [12]

Пример 7: Использование operator.itemgetter

Пример
from operator import itemgetter
d = {'x': 100, 'y': 200, 'z': 300}
keys_to_get = ['x', 'z']
values = list(itemgetter(*keys_to_get)(d))
print(values)  # [100, 300]
Результат: [100, 300]

список значений словаря в Python - comments

En
List values python (python)