Давайте обсудим все 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 показан ниже.