Преобразование двух списков в словарь
Если у нас есть один список ключей и один список значений, объединить их в словарь можно буквально одной строкой. В этой статье разберём два способа: с использованием функций zip() и dict() и через словарное включение.
Что нужно знать
Перед изучением примера полезно понимать:
Словари (Dictionary) в Python — словари
Python: список (list) — списки
Python: кортеж (tuple) — кортежи
Пример 1. Функции zip и dict
index = [1, 2, 3]
languages = ['python', 'c', 'c++']
dictionary = dict(zip(index, languages))
print(dictionary)
Вывод
{1: 'python', 2: 'c', 3: 'c++'}
Здесь два списка — index и languages. Сначала их объединяет функция zip(), потом dict() превращает результат в словарь.
zip()принимает несколько итерируемых объектов и попарно собирает их элементы в кортежи.dict()строит из этих пар словарь, где первый элемент пары становится ключом, а второй — значением.
Пример 2. Словарное включение
index = [1, 2, 3]
languages = ['python', 'c', 'c++']
dictionary = {k: v for k, v in zip(index, languages)}
print(dictionary)
Вывод
{1: 'python', 2: 'c', 3: 'c++'}
Логика та же, что и в первом примере, только вместо dict() используется словарное включение. Сначала zip() объединяет списки в пары, а затем фигурные скобки и форма k: v собирают из этих пар словарь.