Создайте словарь из списка ключей и значений в Python
В этом посте мы обсудим, как создать словарь из списка ключей и значений в Python.
Например, keys = [‘A’, ‘B’, ‘C’] а также values = [1, 2, 3] должен привести к словарю .
1. Использование zip() с dict() функция
Самый простой и элегантный способ построить словарь из списка ключей и значений — использовать метод zip() функция с конструктором словаря.
if __name__ == ‘__main__’ :
keys = [ ‘A’ , ‘B’ , ‘C’ ]
values = [ 1 , 2 , 3 ]
dictionary = dict ( zip ( keys , values ) )
print ( dictionary ) #
2. Использование словарного понимания
Другой подход заключается в использовании zip() с пониманием словаря. Это часто полезно, когда вам нужны пары ключ-значение вместо пар ключ-значение или вы применяете некоторую функцию сопоставления к каждому ключу или значению. Это может быть реализовано как:
if __name__ == ‘__main__’ :
keys = [ ‘A’ , ‘B’ , ‘C’ ]
values = [ 1 , 2 , 3 ]
dictionary = < k : v for k , v in zip ( keys , values ) >
print ( dictionary ) #
Вот как выглядел бы код без zip() :
if __name__ == ‘__main__’ :
keys = [ ‘A’ , ‘B’ , ‘C’ ]
values = [ 1 , 2 , 3 ]
dictionary = < keys [ i ] : values [ i ] for i in range ( len ( keys ) ) >
print ( dictionary ) #
Если вам нужно создать новый словарь с ключами из iterable с тем же значением, вы можете сделать следующее.
if __name__ == ‘__main__’ :
keys = [ ‘A’ , ‘B’ , ‘C’ ]
dictionary = < key : value for key in keys >
print ( dictionary ) #
В качестве альтернативы вы можете использовать fromkeys() функция класса:
if __name__ == ‘__main__’ :
keys = [ ‘A’ , ‘B’ , ‘C’ ]
dictionary = dict . fromkeys ( keys , value )
print ( dictionary ) #
Это все о создании словаря из списка ключей и значений в Python.
Оценить этот пост
Средний рейтинг 4.96 /5. Подсчет голосов: 26
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Подписывайся
3 Комментарии
Большинство голосов
Новейшие Самый старый
Встроенные отзывы
Просмотреть все комментарии
Просмотр комментариев
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации
- Все проблемы
- Практика DSA
- 100 самых популярных задач
- 50 лучших классических задач
- Лучшие алгоритмы
- Компилятор С/С++
- Компилятор Java
- Компилятор Python
- Компилятор JavaScript
- компилятор PHP
- Компилятор C#
- Свяжитесь с нами
- Политика конфиденциальности
- условия обслуживания
- Подпишитесь на новые публикации
Techie Delight © 2023 Все права защищены.
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
Python, как из списка сделать словарь
Как из списка типа [‘a’, ‘s’, ‘d’, ‘1’, ‘s’, ‘d’, ‘w’, ‘e’, ‘q’] сделать словарь такого вида: <'a': 2, 'b': 0 . >, то есть сколько раз повторяется элемент в списке — такое число добавить в словарь. Примечания: словарь можно НЕ строить из элементов что в списке, можно взять готовый скелет, пример:'a':>
но если лучше или легче из элементов, которые в списке — пожалуйста. UPDATE [‘a’, ‘s’, ‘d’, ‘1’, ‘s’, ‘d’, ‘w’, ‘e’, ‘q’] — это не пример данных) Тут список может быть и следующий: [‘=’, ‘w’, ‘r’, ‘p’, ‘f’, ‘;’, ‘a’, ‘e’, ‘e’, ‘[‘, ‘w’, ‘q’, ‘r’, «‘», ‘q’, ‘r’, ‘3’, ‘caps lock’, ‘;’, ‘D’, ‘A’, ‘S’, ‘D’, ‘shift’, ‘alt’, ‘ctrl’, ‘F’, ‘.’, ‘C’, ‘R’, ‘]’, ‘Q’, ‘=’, ‘3’, ‘1’, ‘2’, ‘3’, ‘F’, ‘A’, ‘S’, ‘R’, ‘ctrl’, ‘C’] Это обычный ввод с клавиатуры и мне нужно как раз сложить это в словарь и отправить в базу данных.
Словари и методы в Python. Добавление списка в словарь
Словарь в Python — неупорядоченная структура данных, позволяющая хранить пары «ключ-значение». В этой статье вы узнаете, как выглядит словарь, какие используются методы при работе с ним, а также о том, как преобразовать список в словарь.
Словарь (dictionary) в Python используется наряду с кортежами и списками, похожие структуры есть и в других языках программирования (ассоциативный массив в PHP, словарь в C#).
Словарь, как и список, хранит коллекцию элементов. И каждый элемент в словаре, как было уже упомянуто, имеет уникальный ключ — с ним ассоциировано какое-либо значение.
Вот синтаксис словаря в Python:
dictionary =
А вот ещё пример словаря:
dictionary =
Вышописанный словарь использует в качестве ключей строки. Но ключом может быть и другой неизменяемый тип данных, а значением конкретного ключа — что угодно. Давайте посмотрим на словарь, где ключи — это числа, а значения — это строки:
gender_dict =
Примечание: если будете применять в качестве ключа изменяемый тип данных (правильнее сказать, нехэшируемый, хотя обычно это одно и то же), то на выходе будет ошибка:
dictionary =
Получаем данные из словаря
Чтобы получить значения конкретного ключа используют квадратные скобки [] . Представим, что у нас в словаре присутствует пара «марафон»: 26.
# берём значение с ключом «марафон» dictionary['марафон']Но если вы захотите получить значение, используя не существующий ключ, будет ошибка. Чтобы избежать ошибок, применяют методы.
Как добавлять и обновлять ключи
Добавление в словарь новых пар выполняется просто:
# Добавляем ключ «туфля» со значением «род обуви, который закрывает ногу не выше щиколотки» dictionary['туфля'] = 'род обуви, который закрывает ногу не выше щиколотки'Для обновления делаем то же самое:
# Обновляем ключ "туфля" и присваиваем ему значение "хорошая туфля" dictionary['туфля'] = 'хорошая туфля'Как удалять ключи
Чтобы удалить ключ и соответствующее значение из словаря, используем del:
# Удаляем значение с ключом "противостоять" из словаря del dictionary['противостоять']Методы
Cловари имеют много полезных методов, помогающих в работе. Рассмотрим наиболее популярные.
Update
Метод update() нужен при объявлении нескольких пар одновременно. В качестве аргумента метод принимает другой словарь:
# Добавляем две пары в словарь dictionary, используя метод update dictionary.update() >>> dictionary
Возможно, вы спросите, почему в словаре данные расположены в другом порядке, а не в том, в котором были в него внесены. Ответ прост — словари не упорядочены.
Get
# Представьте, что у нас есть словарь story_count story_count =
get() возвратит значение по указанному ключу. А если его нет, то метод вернёт нам None .
# Ключ "двенадцать" существует и метод get в данном случае вернёт 12 story_count.get('двенадцать')Способ используют при проверке, а есть ли ключи в словаре:
>>> story_count.get('два') NoneКроме того, вы можете указать значение по умолчанию — оно вернётся вместо None , если ключа не будет в словаре:
# Метод вернёт 0 в случае, если данного ключа не существует story_count.get('два', 0)Pop
Метод pop() служит для удаления ключа и возвращения соответствующего ему значения.
>>> story_count.pop('девяносто') 90 >>> story_count
Keys
Метод keys() необходим, чтобы возвратить коллекцию ключей в словаре:
>>> story_count.keys() ['сто', 'пять', 'двенадцать']Values
Возвратит коллекцию значений в словаре.
>>> story_count.values() [100, 12, 5]Items
Если нужно вернуть пары «ключ — значение», используют items() :
>>> dictionary.items() [('персона', 'человек'), ('бежать', 'двигаться со скоростью'), ('туфля', 'род обуви, закрывающей ногу не выше щиколотки'), ('бежал', 'бежать в прошедшем времени'), ('марафон', 'гонка бегунов длиной около 26 миль'), ('туфли', 'туфля во множественном числе')]Итерация через словарь
В «Питоне» есть возможность выполнить итерацию в словаре по каждому ключу:
for key in story_count: print(key)Кстати, вместо story_count можно применять story_count.keys() .
Внимательно посмотрите на участок кода ниже: в нём цикл for использует метод items() , чтобы получить пары «ключ — значение» на каждую итерацию:
>>> for key, value in dictionary.items(): print(key, value) ('персона', 'человек') ('бежать', 'двигаться со скоростью') ('туфля', 'род обуви, закрывающей ногу не выше щиколотки') ('бежал', 'бежать в прошедшем времени') ('марафон', 'гонка бегунов длиной около 26 миль') ('туфли', 'туфля во множественном числе')Словарь и список: выполнение преобразования из списка в словарь
Словарь (dictionary) и список (list) — типы, непохожие по своей структуре. Однако для отдельных видов списка есть возможность преобразования списка в словарь. Для этого используют встроенную функцию dict() . Необходимо, чтобы список хранил набор вложенных списков. Также нужно, чтобы каждый вложенный список состоял из 2-х элементов. В результате во время конвертации списка в словарь 1-й элемент превратится в ключ, 2-й — в значение:
users_list = [ ["+111123455", "Tom"], ["+384767557", "Bob"], ["+958758767", "Alice"] ] users_dict = dict(users_list) print(users_dict) #
Таким же образом возможно преобразование в словарь не только списка, но и двухмерных кортежей:
users_tuple = ( ("+111123455", "Tom"), ("+384767557", "Bob"), ("+958758767", "Alice") ) users_dict = dict(users_tuple) print(users_dict)Материал подготовлен специально для OTUS на основании статьи «Python Dictionary and Dictionary Methods».
Создание словаря из отдельных списков ключей и значений в Python
В работе с Python очень часто возникает потребность в создании словаря из отдельных списков ключей и значений. Возьмем для примера два списка: один со списком стран, а другой — с их столицами.
countries = ['Россия', 'США', 'Франция'] capitals = ['Москва', 'Вашингтон', 'Париж']Задача — создать словарь, где страны будут ключами, а столицы — соответствующими значениями.
Для решения этой задачи в Python существует несколько подходов.
Использование функции zip()
Один из наиболее простых и эффективных способов — использование встроенной функции zip() , которая возвращает итератор кортежей, где первый элемент в каждом происходит из первого передаваемого аргумента, второй — из второго и так далее. Затем итератор можно преобразовать в словарь с помощью функции dict() .
countries = ['Россия', 'США', 'Франция'] capitals = ['Москва', 'Вашингтон', 'Париж'] dictionary = dict(zip(countries, capitals))В результате получаем требуемый словарь:
Использование цикла for
Другой подход — использование цикла for . В этом случае сначала создается пустой словарь, а затем в цикле для каждого ключа из списка ключей в словарь добавляется соответствующее значение из списка значений.
countries = ['Россия', 'США', 'Франция'] capitals = ['Москва', 'Вашингтон', 'Париж'] dictionary = <> for i in range(len(countries)): dictionary[countries[i]] = capitals[i]В результате также получаем требуемый словарь:
Выбор подхода зависит от конкретной задачи и предпочтений программиста. Оба метода позволяют быстро и просто решить поставленную задачу.
