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, ознакомьтесь с официальной документацией здесь.

Last updated