Python: Преобразование словаря в список кортежей (4 простых способа)

В этом руководстве вы узнаете, как использовать Python для преобразования словаря в список кортежей. Вы научитесь делать это с помощью функции list(), списковых выражений Python и функции zip().

Знание того, как работать со словарями и как безопасно преобразовывать их в другие структуры данных Python, является невероятно полезным навыком для любого новичка или продвинутого питониста.

Оглавление

Преобразование словаря Python в список кортежей с помощью функции List

Один из самых простых и питонических способов преобразовать словарь 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 для преобразования словаря в список кортежей.

Хотите узнать, как красиво распечатать JSON-файл с помощью Python? Узнайте три разных метода для этого с помощью этого подробного руководства здесь.

Преобразование словаря Python в список кортежей с помощью List Comprehension

Списковые включения 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(), который возвращает кортеж кортежей наших пар ключ-значение

  • Мы итерируем по ним, создавая новый кортеж пар ключ-значение

В следующем разделе вы узнаете, как использовать функцию zip() Python для преобразования словаря в список кортежей.

Преобразование словаря Python в список кортежей с помощью функции Zip

Функция zip() Python позволяет итерировать последовательно по нескольким итерируемым объектам. Мы можем создать два итерируемых объекта для ключей и значений словаря, используя методы .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 для преобразования словаря в список кортежей.

Хотите узнать, как использовать функцию zip() Python для итерации по двум спискам? Это руководство объясняет, что делает функция zip(), и показывает несколько креативных способов её использования.

Преобразование словаря Python в список кортежей с помощью цикла For

Очень интуитивно понятный способ преобразовать словарь Python в список кортежей — использовать цикл for.

Циклы 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, включая возврат значения по умолчанию.

Заключение

В этой статье вы узнали, как использовать Python для преобразования словаря в список кортежей. Умение преобразовывать и перемещаться между различными структурами данных Python — это невероятно полезный навык. Вы узнали, как это делать с помощью функции list(), списковых включений Python и функции zip().

Чтобы узнать больше о библиотеке collections Python, ознакомьтесь с официальной документацией здесь.

Ознакомьтесь с другими учебниками по Python на datagy, включая наше полное руководство по стилизации Pandas и наш всеобъемлющий обзор сводных таблиц в Pandas.

Last updated