Как создать словарь из списка кортежей?

Самый простой способ:

list_of_tuples = [('a', 1), ('b', 2), ('c', 3)]
my_dict = dict(list_of_tuples)
print(my_dict) # {'a': 1, 'b': 2, 'c': 3}
  

Можно использовать генератор словаря (dictionary comprehension), хотя это избыточно для этой задачи:

list_of_tuples = [('a', 1), ('b', 2), ('c', 3)]
my_dict = {key: value for key, value in list_of_tuples}
print(my_dict) # {'a': 1, 'b': 2, 'c': 3}
  

Есть несколько способов создать словарь из списка кортежей в Python. Самый прямой и распространенный способ - использовать конструктор dict().

1. Использование dict() напрямую:


  кортежи = [('ключ1', 'значение1'), ('ключ2', 'значение2'), ('ключ3', 'значение3')]
  словарь = dict(кортежи)
  print(словарь)  # Вывод: {'ключ1': 'значение1', 'ключ2': 'значение2', 'ключ3': 'значение3'}
  

Конструктор dict() принимает итерируемый объект, содержащий пары ключ-значение (в данном случае, список кортежей), и преобразует его в словарь.

2. Использование генератора словаря (Dictionary Comprehension):


  кортежи = [('ключ1', 'значение1'), ('ключ2', 'значение2'), ('ключ3', 'значение3')]
  словарь = {ключ: значение for ключ, значение in кортежи}
  print(словарь)  # Вывод: {'ключ1': 'значение1', 'ключ2': 'значение2', 'ключ3': 'значение3'}
  

Генераторы словарей предоставляют более гибкий способ создания словарей, позволяя применять логику для преобразования ключей и значений.

3. Использование цикла for (менее предпочтительно, но для понимания):


  кортежи = [('ключ1', 'значение1'), ('ключ2', 'значение2'), ('ключ3', 'значение3')]
  словарь = {}
  for ключ, значение in кортежи:
      словарь[ключ] = значение
  print(словарь)  # Вывод: {'ключ1': 'значение1', 'ключ2': 'значение2', 'ключ3': 'значение3'}
  

Этот метод более многословный, но демонстрирует основную логику создания словаря путем итерации по списку кортежей и присваивания значений ключам в пустом словаре.

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

  • Если требуется простое преобразование, dict() является наиболее лаконичным и эффективным.
  • Если требуется применить какую-либо логику к ключам или значениям при создании словаря, то генератор словаря (Dictionary Comprehension) - лучший выбор.
  • Использовать цикл for имеет смысл только в учебных целях, на практике это менее эффективно и читаемо.
0