Преобразувайте списък в речник в 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 два пъти, тъй като той взема ключ и стойност от двата 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 каквото искате. Изпробвайте различни неща с него. И изпълнете кода, за да видите дали получаваме точния изход, както е споменато в примера, или не.
Заключение
Надяваме се, че ви е харесало преобразуването на списъка в речник. Нека се срещнем в следващия урок.
След това научете как да изравните списък в Python.
Приятно кодиране 🙂
Приятно ви е да прочетете статията? Какво ще кажете за споделяне със света?