Перетворення списку на словник у Python

Трансформація списку в словник у Python – це процес, який не викликає особливих складнощів.

Давайте розглянемо різні методи, які дозволяють перетворити список на словник.

Вступ

Перш ніж ми перейдемо до детального посібника, давайте ознайомимося з прикладом перетворення списку в словник. У нас може бути список кортежів (де кожен кортеж складається з двох елементів) або просто список окремих елементів. Ми розглянемо обидва випадки і покажемо, як їх перетворити на словники.

Приклади:

У цьому прикладі ми візьмемо список кортежів і трансформуємо його в словник. Перший елемент кожного кортежу буде ключем, а другий – відповідним значенням для словника.

Вхідний список: list_one = [('a', 'A'), ('b', 'B'), ('c', 'C')]

Отриманий словник: {'a': 'A', 'b': 'B', 'c': 'C'}

В іншому прикладі ми маємо список елементів і створюємо словник, використовуючи елементи по черзі як ключі та значення. Якщо кількість елементів у списку непарна, ключу, для якого не знайдеться пари, буде присвоєно значення None.

Вхідний список: list_one = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

Отриманий словник: {'a': 'A', 'b': 'B', 'c': 'C', 'd': None}

Отже, ми визначили ціль цього посібника. Ми розглянемо обидва приклади, використовуючи різні підходи. Розпочнемо з першого прикладу.

Перетворення списку кортежів у словник

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

  • Спершу створіть список кортежів із фіктивними даними, як у прикладі (переконайтеся, що кожен кортеж має точно два елементи).
  • Передайте цей список кортежів до функції dict(), яка збереже результат у новій змінній.
  • Це все! За допомогою одного рядка коду ми перетворили список кортежів на словник.
# Список кортежів
list_of_tuples = [('a', 'A'), ('b', 'B'), ('c', 'C')]

# Перетворення на словник
list_of_tuples_dict = dict(list_of_tuples)

# Виведення отриманого словника
print(list_of_tuples_dict)

Ви можете перевірити вищезгаданий код, запустивши його. Результат буде ідентичним до наведених раніше прикладів.

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

Ми вже побачили, як легко перетворити список кортежів у словник. Зараз розглянемо, як трансформувати звичайний список у словник.

Зверніться до другого прикладу з першого розділу для кращого розуміння.

Щоб написати код для цього прикладу, виконайте наведені нижче кроки:

Ми використовуватимемо значення за замовчуванням None для елемента, який не матиме відповідної пари (у випадку списку з непарною кількістю елементів). Для цього застосуємо функцію zip_longest з модуля itertools.

  • Імпортуйте модуль itertools та ініціалізуйте список із непарною кількістю елементів, як у прикладі.
  • Перетворіть список на ітерований об’єкт, щоб уникнути повторення пар ключів і значень у функції zip_longest.
  • Тепер передайте цей ітератор до функції zip_longest і вкажіть fillvalue=None. Функція поверне об’єкт zip.
    • Нам потрібно передати ітератор двічі, оскільки функція приймає ключі та значення з двох ітерованих об’єктів. У нашому випадку і ключі, і значення знаходяться в одному ітераторі. Тому його потрібно передати двічі.
  • За допомогою функції dict() перетворіть об’єкт zip на словник Python.
  • Виведіть отриманий результат.
# Імпорт необхідного модуля
import itertools

# Звичайний список з непарною кількістю елементів
plain_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

# Перетворення списку на ітератор для уникнення повторення
plain_list_iter = iter(plain_list)

# Перетворення списку на словник
plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None)

# Перетворення об'єкта zip_longest на словник за допомогою `dict`
plain_list_dict = dict(plain_list_dict_object)

# Виведення результату
print(plain_list_dict)

Ви можете вказати будь-яке значення за замовчуванням. Поекспериментуйте з різними значеннями. І виконайте код, щоб перевірити, чи збігається результат з наведеним прикладом.

Підсумок

Сподіваюся, вам сподобався процес перетворення списку на словник. Зустрінемося на наступному уроці.

Дізнайтесь більше про зведення списків у Python.

Вдалих вам програмних рішень! 🙂

Чи була ця стаття корисною? Поділіться нею зі світом!