Преобразувайте списък в речник в Python

Преобразуването на списък в речник в Python не е толкова трудно.

Нека да разгледаме различни начини за преобразуване на списък в речник.

въведение

Преди да преминем към урока, нека видим пример за конвертиране на списък в речник. Ще имаме списък от кортежи (всеки кортеж се състои от два елемента) или просто списък от елементи. Ще вземем и двата входа и ще ги конвертираме в речници.

Примери:

В следващия пример сме взели списък от кортежи и сме го преобразували в речник. Взехме първия елемент от всеки кортеж като ключ, а втория елемент като стойност за речника.

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

Изход: {‘a’: ‘A’, ‘b’: ‘B’, ‘c’: ‘C’}

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

  Как да правите по-добри снимки с Live View на вашия фотоапарат

Вход: 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)

Можете да тествате изхода на горната програма, като я изпълните. Ще получите резултата, както виждаме в примерите.

  Защо Netflix пита „Все още ли гледате?“ (и как да го спра)

Списък – речник

Видяхме как да конвертираме списък от кортежи в речник и това е лесно нещо в Python. В този раздел ще видим как да конвертирате обикновен списък в речник.

Вижте втория пример от първия раздел на урока, за да получите повече яснота.

Следвайте стъпките по-долу, за да напишете кода за втория пример.

Попълнили сме стойността по подразбиране като None за елемента, който няма да има никаква стойност (списък, съдържащ нечетен брой елементи). За целта трябва да използваме метод, наречен zip_longest от модула itertools.

  • Импортирайте модула itertools и инициализирайте списък с нечетен брой елементи, дадени в примерите.
  • Преобразувайте списъка в итерируем, за да избегнете повторение на двойки ключ и стойност в метода zip_longest.
  • Сега предайте итерируемия на метода zip_longest и fillvalue като None. Той ще върне zip обект.
    • Трябва да предадем iterable два пъти, тъй като той взема ключ и стойност от двата iterable. В нашия случай и ключовете, и стойностите са в една и съща итерируема. Така че трябва да го предадем два пъти преди 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 каквото искате. Изпробвайте различни неща с него. И изпълнете кода, за да видите дали получаваме точния изход, както е споменато в примера, или не.

  Как да изтриете портфолио в Yahoo Finance

Заключение

Надяваме се, че ви е харесало преобразуването на списъка в речник. Нека се срещнем в следващия урок.

След това научете как да изравните списък в Python.

Приятно кодиране 🙂

Приятно ви е да прочетете статията? Какво ще кажете за споделяне със света?