Как получить список ключей словаря?

Для получения списка ключей словаря в Python можно использовать метод .keys(). Он возвращает view object, который можно преобразовать в список с помощью list().
    
      my_dict = {'a': 1, 'b': 2, 'c': 3}
      keys_list = list(my_dict.keys())
      print(keys_list)  # Output: ['a', 'b', 'c']
    
  

Есть несколько способов получить список ключей словаря в Python. Вот основные:

1. Использование метода .keys():

my_dict = {'a': 1, 'b': 2, 'c': 3}
keys_list = list(my_dict.keys())  # Преобразуем объект view в список
print(keys_list)  # Выведет: ['a', 'b', 'c']
  

Метод .keys() возвращает объект view, который отображает ключи словаря. Чтобы получить именно список, необходимо преобразовать этот объект в список с помощью функции list().

2. Итерация по словарю (неявно итерирует по ключам):

my_dict = {'a': 1, 'b': 2, 'c': 3}
keys_list = [key for key in my_dict]  # List comprehension
print(keys_list)  # Выведет: ['a', 'b', 'c']

# Или:
keys_list = []
for key in my_dict:
  keys_list.append(key)
print(keys_list) # Выведет: ['a', 'b', 'c']
  

Когда вы итерируете непосредственно по словарю (например, в цикле for), Python по умолчанию перебирает ключи словаря. Этот способ эквивалентен использованию my_dict.keys().

3. (Python 2 - устаревший): Использование метода .keys() (возвращает список):

Внимание: Этот способ подходит только для Python 2. В Python 3 метод .keys() возвращает объект view.

# В Python 2:
my_dict = {'a': 1, 'b': 2, 'c': 3}
keys_list = my_dict.keys()  # Возвращает список
print(keys_list)  # Выведет: ['a', 'b', 'c']
  

Какой способ выбрать?

  • В Python 3 рекомендуется использовать list(my_dict.keys()), если вам нужен именно список.
  • Если вам просто нужно перебрать ключи, то достаточно итерировать напрямую по словарю (for key in my_dict: ...). Это наиболее эффективный и питонический способ.
  • Объекты view (возвращаемые .keys(), .values(), .items()) динамически отражают изменения в словаре. Это может быть полезно, если словарь изменяется во время работы с ключами.
0