Как преобразовать словарь в список кортежей в Python

Мы знаем, что словарь в Python содержит пары ключ-значение. В этой статье мы рассмотрим, как перевести словарь в список кортежей, где каждый кортеж будет содержать одну пару ключ-значение.

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

Получить из словаря список кортежей можно с помощью цикла for, обращаясь к ключам и значениям словаря по очереди. На каждой итерации цикла мы будем создавать кортеж из очередной пары ключ-значение, а затем добавлять кортеж в список:

myDict = {1: 2, 3: 4, 5: 6, 7: 8}
print("The Dictionary is:",myDict)
myList = []
for key in myDict:
    value = myDict[key]
    myTuple = (key, value)
    myList.append(myTuple)
print("The list of tuples is:",myList)

Результат:

The Dictionary is: {1: 2, 3: 4, 5: 6, 7: 8}
The list of tuples is: [(1, 2), (3, 4), (5, 6), (7, 8)]

Преобразуем словарь в список кортежей с помощью метода items()

Метод items(), вызванный для словаря, возвращает объект dict_items, содержащий пары ключ-значение словаря. Преобразовать dict_items в список можно с помощью метода list():

myDict = {1: 2, 3: 4, 5: 6, 7: 8}
print("The Dictionary is:", myDict)
items = myDict.items()
myList = list(items)
print("The list of tuples is:", myList)

Результат:

The Dictionary is: {1: 2, 3: 4, 5: 6, 7: 8}
The list of tuples is: [(1, 2), (3, 4), (5, 6), (7, 8)]

Вместо использования функции list() для преобразования dict_items в список можно воспользоваться list comprehension:

myDict = {1: 2, 3: 4, 5: 6, 7: 8}
print("The Dictionary is:", myDict)
items = myDict.items()
myList = [item for item in items]
print("The list of tuples is:", myList)

Результат:

The Dictionary is: {1: 2, 3: 4, 5: 6, 7: 8}
The list of tuples is: [(1, 2), (3, 4), (5, 6), (7, 8)]

Если вы не знакомы с list comprehension, советуем почитать статью “List comprehensions и другие comprehensions в Python”.

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

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

Например, если передать функции zip() два списка [1, 2, 3] и [4, 5, 6], то она объединит их в [(1, 4), (2, 5), (3, 6)]. То есть элементы с одинаковым индексом из каждого списка будут сшиты вместе.

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

Список ключей словаря можно получить с помощью метода keys(). Этот метод возвращает объект dict_keys, содержащий ключи словаря. Объект dict_keys можно преобразовать в список с помощью функции list().

Аналогично мы можем получить список значений с помощью метода values(). Метод values() возвращает объект dict_values, содержащий значения словаря. Чтобы преобразовать объект dict_values в список, снова воспользуемся функцией list().

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

myDict = {1: 2, 3: 4, 5: 6, 7: 8}
print("The Dictionary is:", myDict)
keys = list(myDict.keys())
values = list(myDict.values())
myList = list(zip(keys, values))
print("The list of tuples is:", myList)

Результат:

The Dictionary is: {1: 2, 3: 4, 5: 6, 7: 8}
The list of tuples is: [(1, 2), (3, 4), (5, 6), (7, 8)]

Заключение

В этой статье мы рассмотрели различные способы преобразования словаря в список кортежей в Python. Для этого мы использовали цикл for, list comprehension и функцию zip() вместе с такими методами словаря, как items(), keys() и values().

Перевод статьи Aditya Raj “Convert a Dictionary to List of Tuples in Python”.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *