Трансформація списку в словник у 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.
Вдалих вам програмних рішень! 🙂
Чи була ця стаття корисною? Поділіться нею зі світом!