Давайте обсудим все 5 методов преобразования кортежа в словарь в Python.

Содержание

Метод 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 показан ниже.

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

Добавить комментарий