Структура словаря Python в Python является одной из самых мощных, наиболее недоиспользованных структур данных в Python. Почему? Поскольку проверка членства более эффективна для словарей, чем для списков, во время доступа к элементам легче для словарей, чем для наборов.
В этом руководстве вы узнаете, как выполнить четыре общих операции словаря в одной строке кода Python. Изучая эти проблемы, вы не только узнаете, как использовать словари в Python, но вы получите лучший кодер в целом. Итак, давайте погрузимся в первую проблему: создание словаря из списка в одной строке.
Python Создать словарь из списка в одной строке
Вызов : Создайте словарь из A Список в одной линии Python.
Пример : Скажем, вы хотите иметь индексы списка в качестве клавиш и элементы списка в качестве значений.
# Given a list: a = ['Alice', 'Liz', 'Bob'] # One-Line Statement Creating a Dict: d = one-line-statement print(d) # {0: 'Alice', 1: 'Liz', 2: 'Bob'}
Решение : Есть несколько способов выполнить эту задачу. Давайте узнаем самую пифитону один следующий:
# Given a list: a = ['Alice', 'Liz', 'Bob'] # One-Line Statement Creating a Dict: d = dict(enumerate(a)) print(d) # {0: 'Alice', 1: 'Liz', 2: 'Bob'}
Одноклассник Dict (перечислять (а))
сначала создает ущерба для (индекс, элемент)
кортежи из списка А
используя перечислять функция. Dict ()
Конструктор чем преобразует этот уравновешиваемый из кортежей к (ключ, значение)
сопоставления. индекс
кортеж значение становится новым ключ
Отказ элемент
Значение кортежей становится новым ценность
Отказ
Попробуйте сами в нашем интерактивном коде раковину:
Упражнение : Исследовать перечислять () Функция дальше путем печати его вывода!
Python одна строка для цикла для создания словаря
Вызов : Как создать словарь из всех элементов в списке, используя Однострочная для петли ?
Пример : Скажем, вы хотите заменить следующий фрагмент кода четыре вкладыша с Python One-Liner Отказ
a = ['Alice', 'Liz', 'Bob'] data = {} for item in a: data[item] = item
Как вы это делаете?
Решение : Используйте Словарь понимание заменить для петли построить с одной линией Python.
a = ['Alice', 'Liz', 'Bob'] # One-Liner Dictionary For Loop data = {item:item for item in a} print(data) # {'Alice': 'Alice', 'Liz': 'Liz', 'Bob': 'Bob'}
Словарь понимание Является ли красным и эффективным способом создать и инициализировать словари в одной строке кода Python. Он состоит из двух частей: выражения и контекста. выражение Определяет, как отображать ключи к значениям. контекст Петли по поводу передового использования одной строки для петли и определяют пары, которые (ключ, значение) пары включают в новый словарь.
Вы можете узнать о понимании словаря в моем полном видеоуросе:
Связанная статья : Словарь понимание – полное руководство
Python Print Словарь одна строка
Вызов : Как вы можете Печать Словарь в хорошо структурированном виде, используя только одну строку кода Python (без использования несколько строк для создания вывода)?
Решение : Используйте симпатичную функцию печати!
Встроенный модуль PPRINT
Содержит функцию PPRINT
Отказ Это будет «довольно печатать» ваш словарь. Сортирует ключи в алфавитном порядке и Отпечатки Каждая пара клавиш на новой строке.
from pprint import pprint messy_dict = dict(z='Here is a really long key that spans a lot of text', a='here is another long key that is really too long', j='this is the final key in this dictionary') pprint(messy_dict) ''' {'a': 'here is another long key that is really too long', 'j': 'this is the final key in this dictionary', 'z': 'Here is a really long key that spans a lot of text'} '''
Печать словаря таким образом, не изменяет словарь никак, но делает его более читаемым на оболочке Python!
Итерация по словарю Python одна строка
Вызов Как Итерация За словарь в Python в одной строке?
Пример : Скажем, вы хотите перейти на каждый (ключ, значение)
Пара словаря, как это:
age = {'Alice': 19, 'Bob': 23, 'Frank': 53} # Iterate over dictionary (key, value) pairs for name in age: key, value = name, age[name] print(key, value) ''' OUTPUT: Alice 19 Bob 23 Frank 53 '''
Но вы хотите сделать это в одной строке кода Python! Как?
Решение : Используйте Dict.items ()
метод получения утекаемого. Тогда используйте Однострочная для петли повторить это.
age = {'Alice': 19, 'Bob': 23, 'Frank': 53} # Iterate over dictionary (key, value) pairs for k,v in age.items(): print(k,v) ''' OUTPUT: Alice 19 Bob 23 Frank 53 '''
Вывод одинаково, а код гораздо больше кратко. Предметы ()
Способ словаря, объект создает уравновешиваемый для (ключ, значение)
кортежные пары из словаря.
Python Update словарь в одной строке
Вызов : Учитывая словарь и (ключ, значение)
пара. ключ
может или не может уже существовать в словаре. Как обновить словарь в одной строке Python?
Решение : Используйте нотацию квадратного кронштейна Dict [Key]
Создать новое отображение от ключ
к ценность
в словаре. Есть два случая:
-
ключ
уже существовал раньше и был связан со старымValue_old
Отказ В этом случае новыйценность
Перезаписывать старыйValue_old
После обновления словаря. -
ключ
не было раньше в словаре. В этом случае он создан впервые и связан сценность
Отказ
Вот код:
age = {'Alice': 19, 'Bob': 23, 'Frank': 53} print(f"Alice is {age['Alice']} years old") # Alice is 19 years old # Alice's Birthday age['Alice'] = 20 print(f"Alice is {age['Alice']} years old") # Alice is 20 years old
Вызов 2 : Но что, если вы хотите обновить, только если ключ не существует раньше. Другими словами, вы не хотите перезаписать существующее сопоставление?
Решение : В этом случае вы можете использовать проверку, если в Dict Dict, чтобы дифференцировать два случая:
age = {'Alice': 19, 'Bob': 23, 'Frank': 53} print(f"Alice is {age['Alice']} years old") # Alice is 19 years old # Alice's Birthday if 'Alice' not in age: age['Alice'] = 20 print(f"Alice is {age['Alice']} years old") # Alice is 19 years old
Теперь вы можете захотеть написать это в одной строке кода. Вы можете сделать это наивный путь:
if 'Alice' not in age: age['Alice'] = 20
Лучшая альтернатива – это словарь.setdefault () Метод:
setdefault (
ключ [,
по умолчанию ])
– если ключ
находится в словаре, верните его значение. Если нет, вставьте ключ
со значением по умолчанию
и вернуть по умолчанию
Отказ по умолчанию
по умолчанию для Нет
Отказ
Вы можете просто игнорировать возвращаемое значение для обновления ключа в словаре, если оно еще не присутствует.
age = {'Alice': 19, 'Bob': 23, 'Frank': 53} print(f"Alice is {age['Alice']} years old") # Alice is 19 years old # Alice's Birthday age.setdefault('Alice', 20) print(f"Alice is {age['Alice']} years old") # Alice is 19 years old
age.setdefault ('alice', 20)
Только вставляет ключ «Алиса»
Если это еще не присутствует (в этом случае это будет связать значение 20 к нему). Но поскольку он уже существует, команда не имеет побочных эффектов, а новое значение не перезаписывает старый.
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.