Давайте обсудим все 5 методов преобразования кортежа в словарь в Python.
- Метод 1: с помощью цикла for
- Метод 2: с помощью dict()
- Способ 3: используя понимание словаря
- Метод 4: с помощью zip() и dict()
- Метод 5: с помощью метода _asdict()
Метод 1: с помощью цикла for
В этом разделе мы поймем, как использовать цикл for для преобразования кортежа Python в словарь.
Пример, связанный с этим подходом, приведен ниже.
# Defining a tuple
countries =(
('United States', 21),
('Canada', 34),
('United Kingdom', 54),
('China', 11)
)
# Defining a empty dictionary
countries_dict = {}
# Converting tuple to dict using for loop
for key, value in countries:
countries_dict[key] = value
# Printing tuple
print('Tuple:', countries)
# Printing dictionary
print('Dictionary:', countries_dict)
В приведенном выше примере сначала мы определили кортеж с именем «страны». Затем мы определили пустой словарь с именем countries_dict.
Затем мы использовали цикл for для перебора каждой пары кортежей и определения их как словарной пары ключ-значение. Выполнив вышеуказанную программу Python, мы получим следующий результат.
Tuple:(('United States', 21),('Canada', 34),('United Kingdom', 54),('China', 11))
Dictionary: {'United States': 21, 'Canada': 34, 'United Kingdom': 54, 'China': 11}
Метод 2: с помощью dict()
Другой метод преобразования кортежа в словарь в Python — использование функции dict().
Ниже приведен пример использования функции dict() для кортежа.
# Defining a tuple
usa_states =(
('Texas', 21),
('Florida', 34),
('Hawaii', 54),
('California', 11)
)
# Converting tuple to dict using dict()
states_dict = dict(usa_states)
# Printing tuple
print('Tuple:', usa_states)
# Printing dictionary
print('Dictionary:', states_dict)
В этом примере мы передали кортеж usa_stated в функцию dict(), чтобы преобразовать его в словарь. После этого мы присваиваем словарь переменной States_dict.
Результат работы вышеуказанной программы Python приведен ниже.
Tuple:(('Texas', 21),('Florida', 34),('Hawaii', 54),('California', 11))
Dictionary: {'Texas': 21, 'Florida': 34, 'Hawaii': 54, 'California': 11}
Способ 3: используя понимание словаря
Здесь мы определили кортеж с именем usa_states, содержащий больше пар кортежей. Затем мы использовали понимание списка, где мы использовали цикл for для перебора каждой пары кортежей и формирования из нее словаря.
# Defining a tuple
usa_states =(
('Texas', 21),
('Florida', 34),
('Hawaii', 54),
('California', 11)
)
# Converting tuple to dict using dictionary comprehension
states_dict = {key: value for key, value in usa_states}
# Printing tuple
print('Tuple:', usa_states)
# Printing dictionary
print('Dictionary:', states_dict)
После выполнения вышеуказанной программы Python мы получим следующий результат.
Tuple:(('Texas', 21),('Florida', 34),('Hawaii', 54),('California', 11))
Dictionary: {'Texas': 21, 'Florida': 34, 'Hawaii': 54, 'California': 11}
Метод 4: с помощью zip() и dict()
Далее мы также можем использовать функцию zip() в сочетании с функцией dict() для преобразования кортежа в словарь.
Функция zip() в Python принимает на вход несколько итераций, объединяет их и возвращает итераторы кортежа. После этого мы можем преобразовать кортеж в словарь, используя функцию dict() в Python.
Пример такого подхода приведен ниже.
# Defining 2 tuples
usa_states =('Texas', 'Florida', 'Hawaii', 'California')
state_scores =(72, 86, 65, 87)
# Using dict() and zip() to convert tuples to dictionary
state_score_dict = dict(zip(usa_states, state_scores))
# Printing tuple values
print('Keys Tuple:', usa_states)
print('Values Tuple:', state_scores)
# Printing dictionary
print('Dictionary:', state_score_dict)
В этом примере мы взяли два кортежа, объединили их с помощью функции zip() и преобразовали в словарь с помощью dict().
Выполнив программу Python, мы получим следующий результат.
Keys Tuple:('Texas', 'Florida', 'Hawaii', 'California')
Values Tuple:(72, 86, 65, 87)
Dictionary: {'Texas': 72, 'Florida': 86, 'Hawaii': 65, 'California': 87}
Метод 5: с помощью метода _asdict()
- _asdict() — это метод в классе Python с именем tuple, который входит в состав модуля коллекций.
- Этот метод позволяет нам преобразовать именованный кортеж в словарь. Более того, результатом работы словаря является упорядоченный словарь.
- Это означает, что порядок элементов именованного кортежа будет сохранен в словаре.
# Importing namedtuple
from collections import namedtuple
# Defining a named tuple
usa_states = namedtuple('usa_states', ['Texas', 'Florida', 'California'])
state_scores = usa_states(72, 65, 98)
# Converting namedtuple to dictionary
state_dict = state_scores._asdict()
# Printing dictionary
print("Named Tuple:",state_scores)
print("Dictionary:",state_dict)
В этом примере мы сначала определили именованный кортеж, а затем использовали метод _asdict() для преобразования именованного кортежа в упорядоченный словарь.
Результат работы вышеуказанной программы Python показан ниже.
