Как создать словарь из списков в python
Питоновский словарь аналогичен HashMap в Java и Object в JavaScript.
Как создать словарь в Python: 6 способов
Пустой словарь создается с помощью фигурных скобок или функции dict():
info_dict = <> my_dict = dict()
Словари с данными, как и в случае со списками, можно создавать несколькими способами.
Способ 1: Перечисление ключей и значений
Данные словаря перечисляются в виде пар ключ: значение через запятую и заключаются в фигурные скобки:
Способ 2: Создание словаря с помощью dict()
При использовании этого метода ключи и значения тоже придется определить вручную:
>>> my_dict = dict(name = 'Евгений', age = 28, position = 'Java-разработчик') >>> print(my_dict)
Способ 3: Создание словаря с помощью zip() и dict()
Если есть два списка, в одном из которых хранятся ключи, а в другом – значения, словарь можно создать при помощи zip() и dict():
>>> keys = ['цвет', 'размер', 'количество', 'цена'] >>> values = ['синий', '35х45х60', 5, 2500] >>> info = dict(zip(keys, values)) >>> print(info)
Способ 4: Создание словаря из списка кортежей и кортежа списков
Если имеется список кортежей, в которых первый элемент служит ключом, а второй – значением, словарь можно сформировать с помощью dict():
>>> item = [('модель', 'Aura'), ('цвет', 'пурпурный'), ('наличие', 'на складе')] >>> item_dict = dict(item) >>> print(item_dict)
Точно так же этот подход работает с кортежeм списков:
>>> employee= (['имя', 'Никита'], ['отчество', 'Сергеевич'], ['фамилия', 'Колобков'], ['возраст', 32]) >>> empl_dict = dict(employee) >>> print(empl_dict)
Способ 5: Метод fromkeys()
Если нужно создать словарь, у всех ключей которого – одинаковые значения, можно воспользоваться методом fromkeys():
>>> new_dict = dict.fromkeys(['север', 'юг', 'восток', 'запад'], 0) >>> print(new_dict)
Способ 6: Использование генератора словарей
Словари можно создавать на основе списков и строк. При этом одновременно можно проводить различные действия с числами и символами – математические операции, подсчет, сравнение и так далее:
>>> numbers = [2, 18, 5, 7, 2, 32, 6, 9, 4, 8, 9, 12, 14, 14] >>> my_dict = >>> print(my_dict)
В генераторах можно использовать преобразование типов данных и условия:
>>> st = '12 31 4 53 6 7 4 90 8 7 56 3 42' >>> my_dict = >>> print(my_dict)
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»
Особенности словарей
Начиная с Python 3.6, словари являются упорядоченными коллекциями – пары ключ: значение хранятся в словаре в порядке добавления. В отличие от строк и списков, словари не поддерживают срезы и конкатенацию, а к элементу словаря нельзя обратиться по индексу – в качестве индексов в словарях выступают ключи:
>>> my_dict = >>> print(my_dict['цвет'], my_dict[' количество ']) красный 53 кг
Ключи в словаре не должны повторяться – если добавить в словарь ключ, идентичный существующему, Python сохранит только один ключ с последним значением:
>>> my_dict = >>> print(my_dict)
В качестве ключей можно использовать все типы данных, которые относятся к неизменяемым: int, float, Boolean (True/False), frozenset, строки, кортежи. Нельзя использовать списки, обычные множества set и словари, поскольку они являются изменяемыми. При этом в качестве значения в словарях можно использовать данные любого типа, включая словари – такие словари называются вложенными:
>>> hr_info = , 'сотрудник2': , 'сотрудник3': > >>> print(hr_info['сотрудник2']['должность']) DevOps
Методы словарей в Python 3
Словари поддерживают некоторые методы, общие с другими типами данных, и имеют несколько своих собственных. Рассмотрим общие и уникальные методы на примерах.
Длина словаря и принадлежность элемента:
>>> my_dict = >>> print(len(my_dict)) 4 >>> print('есть на складе' if 'футболка' in my_dict else 'нет в наличии') нет в наличии
Сумма ключей, максимальный и минимальный элементы
Функция sum() подсчитывает сумму ключей словаря и работает только в том случае, когда ключи являются числами:
>>> my_dict = >>> print(sum(my_dict)) 13
Функции min() и max() работают для большинства типов данных:
>>> my_dict = >>> print(min(my_dict), max(my_dict)) количество цена >>> print(min(my_dict, key=len)) цена
Объединение словарей
Словари можно объединять – если в них есть одинаковые ключи, в полученном словаре значение будет взято из последнего словаря:
>>> my_dict1 = >>> my_dict2 = >>> print(<**my_dict1, **my_dict2>)
Сравнение словарей
Словари считаются одинаковыми, если в них совпадают и ключи, и значения:
>>> my_dict = >>> my_dict2 = >>> print(my_dict == my_dict2) False
Получение ключей, значений и элементов
Для работы с ключами используется метод keys(), со значениями – values(), с парами – items():
>>> my_dict = >>> print(my_dict.values()) dict_values(['чай', 100, 550, 256]) >>> print(my_dict.keys()) dict_keys(['напиток', 'вес', 'цена', 'количество']) >>> print(my_dict.items()) dict_items([('напиток', 'чай'), ('вес', 100), ('цена', 550), ('количество', 256)])
Добавление и изменение элементов
Для изменения значения какого-либо ключа используют оператор присваивания = :
>>> my_dict = >>> my_dict['имя'] = 'Евгений' >>> print(my_dict)
Если же такого ключа в словаре еще нет, новый элемент будет добавлен автоматически:
>>> my_dict = >>> my_dict['фамилия'] = 'Егоров' >>> print(my_dict)
Однако если обратиться к несуществующему элементу без присвоения ему значения, произойдет ошибка:
>>> my_dict = >>> print(my_dict['город']) Traceback (most recent call last): File "", line 1, in KeyError: 'город'
Получение значения по ключу – get()
Чтобы избежать появления показанной выше ошибки, используют метод get(), которому можно передать значение по умолчанию – оно выведется, если такого ключа в словаре нет:
>>> my_dict = >>> print(my_dict.get('зарплата', 'не указана')) не указана
Получение значения и/или добавление элемента с setdefault()
Другой метод для получения значения – setdefault(). Он действует двумя разными способами:
1) Если указанный ключ уже есть в словаре – возвращает его значение (даже при наличии значения по умолчанию):
>>> my_dict = >>> print(my_dict.setdefault('возраст', 'не указан')) 25
2) Если ключа нет – вставляет элемент в словарь, возвращает значение:
>>> my_dict = >>> print(my_dict.setdefault('зарплата', 150000)) 150000 >>> print(my_dict)
Дополнение словаря
Элементы одного словаря можно «обновить», дополнить элементами другого. В случае совпадения ключей, как и при показанном ранее объединении словарей, сохраняются значения второго словаря:
>>> my_dict1 = >>> my_dict2 = >>> my_dict1.update(my_dict2) >>> print(my_dict1)
Удаление элементов словаря
Как и в случае со списками, удалять элементы из словарей можно несколькими способами:
del – удаляет элемент с заданным ключом:
>>> my_dict = >>> del my_dict['название'] >>> print(my_dict)
pop() – возвращает удаленное значение:
>>> my_dict = >>> фильм = my_dict.pop('название') >>> print(фильм) Зеленая миля
popitem() – удаляет последний добавленный элемент и возвращает его ключ: значение в виде кортежа:
>>> my_dict = >>> movie = my_dict.popitem() >>> print(movie) ('название', 'Властелин колец')
clear() – удаляет все элементы словаря:
>>> my_dict = >>> my_dict.clear() >>> print(my_dict) <>
Создание копии словаря
Копия словаря создается тем же методом, что и в случае со списками – с помощью copy():
>>> my_dict = >>> new_dict = my_dict.copy() >>> print(new_dict)
Практика
Задание 1
Напишите программу, которая получает на вход две строки, и формирует из них словарь. Ключами служат слова из первой строки, значениями – целые числа из второй.
Пример ввода:
яблоки сливы груши персики манго киви апельсины 34 56 23 89 55 32 11
keys = input().split() values = map(int, input().split()) my_dict = dict(zip(keys, values)) print(my_dict)
Задание 2
Напишите программу, которая получает на вход строку чисел, разделенных пробелами, и формирует словарь, в котором ключами служат четные числа, а значениями – слово четное .
Пример ввода:
45 6 8 23 21 87 65 45 38
nums = map(int, input().split()) my_dict = print(my_dict)
Задание 3
Напишите программу, которая получает на вход строку и подсчитывает, сколько раз в ней встречается каждый символ (независимо от регистра). Результат нужно вывести без фигурных скобок.
Пример ввода:
Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем.
е-11 с-3 т-7 ь-4 -14 о-9 л-2 к-4 д-3 и-10 н-6 п-1 б-3 з-1 ж-1 а-2 р-2 :-1 ч-2 г-3 й-1 ,-1 в-1 у-1 м-1 .-1
st = input().lower() my_dict = print(*[str(k) + '-' + str(v) for k, v in my_dict.items()])
Задание 4
Напишите программу, которая получает 2 слова на разных строках и определяет, являются ли эти слова анаграммами.
Пример ввода 1:
меч мяч
Пример ввода 2:
Минотавр Норматив
Как сделать словарь из двух списков в Python
Совсем не давно я обратил свое внимание на Python, захотелось попробовать свои силы в программирование и если все получиться поменять сферу деятельности, но это еще только планы. В общем, в программирование на Python я не новичок, но до гуру мне еще очень далеко, поэтому если Вы найдете ошибки в моих статьях сообщите. Если Вы так же решили изучить Питон, то должны научиться работать со словарями и списками. Сегодня поговорим о том как создать словарь из списков.
Я уже написал несколько статей касаемых программирования на Python, рекомендую Вам с ними обязательно ознакомиться.
Как собрать словарь из двух списков
И так допустим есть какие то списки, например.
names = [‘Аня’, ‘Коля’, ‘Лёша’, ‘Лена’, ‘Миша’]
cities = [‘Владивосток’, ‘Красноярск’, ‘Москва’, ‘Обнинск’, ‘Чебоксары’]
Для того чтобы собрать словарь нужно воспользоваться функциями len и range в цикле for.
friends = <>
for i in range (len(friends_names)):
friends[names[i]] = cities [i]
То получим словарь.
Давайте немного разберем то что мы сделали, с помощью range мы задали последовательность чисел, с аргументом len(names). Функция len(names) посчитала и вернула нам количество элементов в списке
Мы увидим количество элементов в списке.
Далее мы просто сопоставили элементы двух списков friends[names[i]] = cities [i].
Самое главное чтобы элементы в списках соответствовал друг другу и их было одинаковое количество.
Раздел: Python Метки: Словарь из двух списков в Python
Словарь из двух списков : 2 комментария
- Виктор 08.08.2022 Код не работает.
names = [‘Аня’, ‘Коля’, ‘Лёша’, ‘Лена’, ‘Миша’]
cities = [‘Владивосток’, ‘Красноярск’, ‘Москва’, ‘Обнинск’, ‘Чебоксары’]
friends = <>
for i in range (len(friends_names)):
friends[names[i]] = cities [i]
Выдает ошибку
File «», line 5
friends[names[i]] = cities [i]
^
IndentationError: expected an indented block
Создать из списка словарь
Создать словарь из списка
Уважаемые форумчане Задали задачу, которую я не могу осилить((( # На вход программы поступают.

Создать словарь, в котором ключи это содержимое списка В, а значения для ключей словаря
Даны два списка: А = В = Создать словарь, в котором ключи – это содержимое списка В, а.
Словарь, в котором каждый элемент списка является и ключом и значением
программу, которая принимает аргумент в виде списка и возвращает словарь, в котором каждый элемент.
Даны два списка одинаковой длины. Необходимо создать из них словарь таким образом, чтобы элементы первого списка были кл
Даны два списка одинаковой длины. Необходимо создать из них словарь таким образом, чтобы элементы.

Создать вложеный словарь из списка
Дан список Нужно получить >>
Python. Создать словарь по списку ключей
Предположим, вы сделали робота для общественных пространств. Он будет помогать людям.
Вы решаете, что полезно собирать статистику добрых дел — что и сколько раз робот сделал. Для этого удобно использовать счётчик, ключами которого будут названия действий, а значениями — количество выполнений.
Робот постоянно учится новым полезным активностям, так что набор дел не фиксированный. Он хранится в списке:
actions = [ "махать флагом", "чесать котов", "смешить детей", "рвать шаблоны", ]
Как бы из этого списка сделать счётчик? Так не надо, конечно:
from collections import Counter counter = Counter() for action in actions: counter[action] = 0 >>> counter Counter( 'махать флагом': 0, 'чесать котов': 0, 'смешить детей': 0, 'рвать шаблоны': 0>)
Намного роднее воспользоваться dictionary comprehension (простите, что на англ — непереводимая игра слов):
counter = Counter(action: 0 for action in actions>)
Или малоизвестным методом dict.fromkeys() :
counter = Counter(dict.fromkeys(actions, 0))
Первый аргумент — список ключей, второй — умолчательное значение. Удобно, а?
Подписывайтесь на канал, чтобы не пропустить новые заметки
