Мы знаем, что словарь в 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”.