Python: Преобразование словаря в список кортежей (4 простых способа)
В этом учебнике вы узнаете, как использовать Python для преобразования словаря в список кортежей. Вы узнаете, как это сделать с помощью функции list(), генераторов списков Python и функции zip(). Умение работать со словарями и безопасно преобразовывать их в другие структуры данных Python — это невероятно полезный навык для любого начинающего или продвинутого Pythonista.
Содержание
Преобразование Python словаря в список кортежей с использованием функции List
Один из самых простых и pythonic способов преобразовать словарь Python в список кортежей — это использовать встроенную функцию list(). Эта функция принимает объект и генерирует список с его элементами. Один из встроенных методов для словарей — метод .items(), который возвращает кортеж кортежей пар ключ-значение, найденных внутри словаря. Мы можем использовать этот метод и передать его в функцию list(), чтобы сгенерировать список кортежей, содержащих пары ключ-значение из нашего словаря.
# Преобразование словаря в список кортежей с использованием list()
sample_dict = {'john': 30, 'nik': 32, 'datagy': 40}
list_of_tuples = list(sample_dict.items())
print(list_of_tuples)
# Возвращает: [('john', 30), ('nik', 32), ('datagy', 40)]Мы видим, что мы передали элементы нашего словаря в функцию list(). Это вернуло список кортежей с соответствующими парами ключ-значение. В следующем разделе вы узнаете, как использовать генератор списков Python для преобразования словаря в список кортежей.
Преобразование Python словаря в список кортежей с использованием генератора списков
Генераторы списков Python — это элегантные способы генерации списков на основе другого итерируемого объекта. Чтобы преобразовать словарь в Python в список кортежей, мы будем проходить по ключам и значениям и генерировать кортежи. Давайте посмотрим, как выглядит этот код:
# Преобразование словаря в список кортежей с использованием генератора списков
sample_dict = {'john': 30, 'nik': 32, 'datagy': 40}
list_of_tuples = [(key, value) for key, value in sample_dict.items()]
print(list_of_tuples)
# Возвращает: [('john', 30), ('nik', 32), ('datagy', 40)]Давайте разберем наш генератор списков:
Наш итерируемый объект представлен
sample_dict.items(), который возвращает кортеж кортежей наших пар ключ-значениеМы проходим по ним, создавая новый кортеж пар ключ-значение
В следующем разделе вы узнаете, как использовать функцию Python zip() для преобразования словаря в список кортежей.
Преобразование Python словаря в список кортежей с использованием функции Zip
Функция Python zip() позволяет итерировать последовательно по нескольким итерируемым объектам. Мы можем создать два итерируемых объекта для ключей и значений словаря, используя методы .keys() и .items(). Оба этих метода возвращают итерируемые объекты, содержащие либо ключи, либо значения нашего словаря. Давайте посмотрим, как это можно сделать в Python:
# Преобразование словаря в список кортежей с использованием функции Zip
sample_dict = {'john': 30, 'nik': 32, 'datagy': 40}
keys = sample_dict.keys()
values = sample_dict.values()
list_of_tuples = list(zip(keys, values))
print(list_of_tuples)
# Возвращает: [('john', 30), ('nik', 32), ('datagy', 40)]Давайте посмотрим, что мы сделали:
Мы загрузили наш пример словаря
Мы создали два новых объекта, один содержит ключи, а другой — значения
Мы использовали функцию
zip(), чтобы объединить эти два объекта вместе, последовательноМы преобразовали это в список кортежей
В следующем разделе вы узнаете, как использовать библиотеку collections для преобразования словаря в список кортежей.
Преобразование Python словаря в список кортежей с использованием цикла For
Очень интуитивно понятный способ преобразования Python словаря в список кортежей — это использование цикла for в Python. Циклы for в Python позволяют нам легко итерировать по последовательности и выполнять предоставленное действие в результате. Давайте посмотрим, как это можно сделать с использованием цикла for:
# Преобразование словаря в список кортежей с использованием цикла for
sample_dict = {'john': 30, 'nik': 32, 'datagy': 40}
list_of_tuples = list()
for key in sample_dict:
list_of_tuples.append((key, sample_dict.get(key)))
print(list_of_tuples)
# Возвращает: [('john', 30), ('nik', 32), ('datagy', 40)]Давайте исследуем этот код, чтобы лучше понять, что происходит:
Мы создали пустой список, к которому будем добавлять наши кортежи
Мы проходим по каждому ключу в объекте
sample_dictМы добавляем кортеж, содержащий ключ и значение, которое ключ возвращает с использованием метода
.get()
Заключение
В этой статье вы узнали, как использовать Python для преобразования словаря в список кортежей. Умение преобразовывать и перемещаться между различными структурами данных Python — это невероятно полезный навык. Вы узнали, как это сделать с помощью функции list(), генераторов списков Python и функции zip(). Чтобы узнать больше о библиотеке collections в Python, ознакомьтесь с официальной документацией здесь.
Последнее обновление