← Назад к вопросам

Как достать все ключи из словаря в Python?

1.0 Junior🔥 221 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Получение ключей из словаря в Python

Вот основные способы извлечения всех ключей из словаря в Python:

1. Метод .keys() (классический способ)

d = {'name': 'Alice', 'age': 30, 'city': 'Moscow'}
keys = d.keys()
print(keys)  # dict_keys(['name', 'age', 'city'])

Этот метод возвращает объект dict_keys (представление ключей), который поддерживает итерацию и проверку принадлежности. Важно помнить, что это не список, а view-объект, который отражает изменения исходного словаря в реальном времени.

2. Преобразование в список

d = {'name': 'Alice', 'age': 30, 'city': 'Moscow'}
keys_list = list(d.keys())
print(keys_list)  # ['name', 'age', 'city']

Используй этот способ, если тебе нужен настоящий список для дальнейшей обработки, индексирования или сортировки.

3. Итерация без явного вызова .keys()

d = {'name': 'Alice', 'age': 30, 'city': 'Moscow'}
for key in d:
    print(key)
# name
# age
# city

При итерации по словарю напрямую (без .keys()) Python автоматически перебирает ключи. Это самый естественный и Pythonic способ.

4. List comprehension для фильтрации

d = {'name': 'Alice', 'age': 30, 'city': 'Moscow'}
keys_starting_with_a = [k for k in d if k.startswith('a')]
print(keys_starting_with_a)  # ['age']

Если нужны не все ключи, а отфильтрованные по некоторому условию, используй list comprehension.

5. Получение отсортированных ключей

d = {'name': 'Alice', 'age': 30, 'city': 'Moscow'}
sorted_keys = sorted(d.keys())
print(sorted_keys)  # ['age', 'city', 'name']

Для сортировки ключей в алфавитном порядке используй sorted().

Практические примеры

Проверка наличия ключа:

d = {'name': 'Alice', 'age': 30}
if 'name' in d.keys():  # или просто: if 'name' in d:
    print("Ключ существует")

Получение ключей конкретного типа значения:

d = {'name': 'Alice', 'age': 30, 'salary': 50000, 'city': 'Moscow'}
numeric_keys = [k for k, v in d.items() if isinstance(v, int)]
print(numeric_keys)  # ['age', 'salary']

Получение симметричной разницы между двумя словарями:

d1 = {'a': 1, 'b': 2, 'c': 3}
d2 = {'b': 2, 'c': 3, 'd': 4}
unique_keys = set(d1.keys()) ^ set(d2.keys())
print(unique_keys)  # {'a', 'd'}

Важные моменты

  • Dict_keys — view объект, а не список. Он обновляется динамически при изменении словаря.
  • В Python 3.7+ порядок ключей гарантирован и соответствует порядку вставки.
  • Для большинства задач просто используй итерацию for key in d: — это самый Pythonic способ.
  • Используй .keys() явно, только если тебе нужны операции над набором ключей (вычитание, пересечение и т.д.).
Как достать все ключи из словаря в Python? | PrepBro