Рубрики
Без рубрики

Python One Line словарь

Структура словаря Python в Python является одной из самых мощных, наиболее недоиспользованных структур данных в Python. Почему? Поскольку проверка членства более эффективна для словарей, чем для списков, во время доступа к элементам легче для словарей, чем для наборов. В этом руководстве вы узнаете, как выполнить четыре общих операции словаря в одной строке Python … Python One Line Prine Словарь Подробнее »

Автор оригинала: Chris.

Структура словаря 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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.