Преобразование списка в словарь в Python

Преобразование списка в словарь в Python не так уж сложно.

Давайте рассмотрим различные способы преобразования списка в словарь.

вступление

Прежде чем перейти к руководству, давайте рассмотрим пример преобразования списка в словарь. У нас будет список кортежей (каждый кортеж состоит из двух элементов) или просто список элементов. Мы возьмем оба ввода и преобразуем их в словари.

Примеры:

В следующем примере мы взяли список кортежей и преобразовали его в словарь. Мы взяли первый элемент каждого кортежа в качестве ключа, а второй элемент — в качестве значения для словаря.

Ввод: list_one = [(‘a’, ‘A’), (‘b’, ‘B’), (‘c’, ‘C’)]

Вывод: {‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’}

В следующем примере мы взяли список элементов и преобразовали его в словарь с альтернативными элементами в качестве ключа и значения. Мы будем давать null ключу, если для него в качестве ключа не осталось ни одного элемента (если в списке нечетное количество элементов).

Ввод: list_one = [‘a’, ‘A’, ‘b’, ‘B’, ‘c’, ‘C’, ‘d’]

Вывод: {‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’, ‘d’: нет}

Мы увидели цель урока. И мы обсудим оба примера по-разному. Начнем с первого примера.

Список кортежей — Словарь

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

  • Инициализируйте список кортежей фиктивными данными, как показано в приведенных выше примерах (убедитесь, что каждый кортеж в списке содержит ровно два элемента).
  • Передайте список кортежей методу dict, и он сохранит результат в новой переменной.
  • Вот и все, мы преобразовали список кортежей в словарь с помощью одной строки кода.
# list of tuples
list_of_tuples = [('a', 'A'), ('b', 'B'), ('c', 'C')]

# converting to dictionary
list_of_tuples_dict = dict(list_of_tuples)

# printing the result dict
print(list_of_tuples_dict)

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

Список – Словарь

Мы видели, как преобразовать список кортежей в словарь, и в Python это делается просто. В этом разделе мы увидим, как преобразовать обычный список в словарь.

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

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

Мы заполнили значение по умолчанию как None для элемента, который не будет иметь никакого значения (список, содержащий нечетное количество элементов). Для этого нам нужно использовать метод zip_longest из модуля itertools.

  • Импортируйте модуль itertools и инициализируйте список с нечетным количеством элементов, приведенным в примерах.
  • Преобразуйте список в итерируемый, чтобы избежать повторения пар ключ-значение в методе zip_longest.
  • Теперь передайте итерацию методу zip_longest и fillvalue как None. Он вернет zip-объект.
    • Мы должны передать iterable два раза, так как он берет ключ и значение из двух iterables. В нашем случае и ключи, и значения находятся в одной итерации. Итак, нам нужно передать его два раза перед fillvalue.
  • Преобразуйте объект в словарь Python, используя метод dict.
  • Распечатайте результат.
# importing the module
import itertools

# plain list with odd number of elements
plain_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

# converting it to iterable to avoid repetition
plain_list_iter = iter(plain_list)

# converting the plain_list to dict
plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None)

# convert the zip_longest object to dict using `dict`
plain_list_dict = dict(plain_list_dict_object)

# print it
print(plain_list_dict)

Вы можете дать fillvalue все, что хотите. Попробуйте разные вещи с ним. И выполните код, чтобы увидеть, получаем ли мы точный вывод, как указано в примере, или нет.

Вывод

Надеюсь, вам понравилось преобразование списка в словарь. Давайте встретимся в следующем уроке.

Затем узнайте, как сгладить список в Python.

Удачного кодирования 🙂

Понравилось читать статью? Как насчет того, чтобы поделиться с миром?