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