Підручник із розуміння словника Python

Мова програмування Python пропонує унікальний набір інструментів, який робить кодування не тільки цікавим, але й прискорює ваш прогрес як програміста. Завдяки простоті використання Python став популярною мовою для багатьох галузей, від веб-розробки та науки про дані до фінансів тощо.

Підручник із розуміння словника Python

Розуміння словника Python є важливим інструментом, який дозволяє генерувати словники динамічно шляхом повторення існуючих ітерованих структур даних або словників для створення нових. Ви можете думати, що розуміння словника схоже на розуміння списку, але з дещо іншим варіантом використання.

Ознайомившись із розуміннями, ви побачите, що вони можуть значно покращити код, сприяючи зрозумілості та усуваючи потребу в довгих повторюваних циклах.

Якщо ви новачок у , можливо, ви не стикалися з розумінням або не використовували його у своєму коді. Перш ніж заглибитися в синтаксис, давайте розглянемо головне питання: що таке розуміння словника Python?

Зміст

Що таке розуміння словника Python?

Python Dictionary Comprehension — це стислий спосіб створення словників за допомогою простих виразів. Це дозволяє створювати нові словники без необхідності використовувати for-loops.e

Давайте розглянемо приклад розуміння. Припустимо, у вас є два списки, один із яких містить ключі, а інший — значення:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

Використовуючи розуміння словника, ви можете створити новий словник, перебираючи два списки та комбінуючи відповідні пари ключ-значення:

my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict)

Результатом буде:

{'a': 1, 'b': 2, 'c': 3}

Підручник із розуміння словника Python

Наведений вище приклад повинен дати уявлення про те, що таке розуміння. Щоб ще більше допомогти вам утвердити концепцію, давайте розберемося з синтаксисом словникового розуміння в Python.

Розуміння синтаксису розуміння словника

Синтаксис для розуміння словника простий, але потужний. Вони пропонують лаконічний . Крім того, вони дотримуються подібного синтаксису для розуміння списку, але використовують фігурні дужки {} та пару ключ-значення, розділену двокрапкою.

Основна структура така:

{key: value for (key, value) in iterable}

У цьому синтаксисі ключ і значення представляють вирази, які використовуються для створення ключів і значень результуючого словника. Ітерація надає джерело даних, які використовуються для створення пар ключ-значення.

Цей синтаксис було представлено в Python 3 і перенесено до Python 2.7, забезпечуючи широку сумісність між версіями Python.

Наприклад, щоб створити словник, який зіставляє числа від 0 до 4 з їхніми квадратами за допомогою розуміння словника, ви можете використати такий код Python:

square_dict = {x: x**2 for x in range(5)}

Це призведе до такого словника:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Підручник із розуміння словника Python

Що робити, якщо ви хочете перебирати дві змінні одночасно? Ви можете досягти цього за допомогою розуміння словника за допомогою функції zip(), щоб створити словник із двох ітерацій, один з яких представляє ключі, а інший — значення. Ось приклад:

keys = ['a', 'b', 'c', 'd', 'e']
values = [1, 2, 3, 4, 5]
my_dict = {k: v for k, v in zip(keys, values)}

Отриманий словник буде таким:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

Підручник із розуміння словника Python

Розуміння словника також дозволяє додати необов’язковий оператор if у кінці розуміння, щоб застосувати умовний фільтр до включених елементів.

Наприклад, ви можете створити словник лише з парними числами та їхніми квадратами за допомогою розуміння словника:

even_square_dict = {x: x**2 for x in range(10) if x % 2 == 0}

Це призводить до:

{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Підручник із розуміння словника Python

Тепер, коли ви трохи знайомі з синтаксисом розуміння, давайте подивимося на деякі приклади розуміння.

Приклади розуміння словника

Завдяки своєму потужному та елегантному синтаксису розуміння словника знаходить різноманітні варіанти використання. Вони можуть заощадити ваш час і зробити ваш код більш читабельним.

Відображення чисел у їхніх квадратах

Розглянемо простий приклад, де ви хочете створити словник, який зіставляє числа з їхніми квадратами за допомогою розуміння словника Python:

squares = {x: x**2 for x in range(1, 6)}
print(squares)

Це виведе:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Наведений вище код виконує ту саму роботу, що й виконання циклу шість разів і зведення кожного числа у квадрат. Наведений нижче код демонструє запуск циклу для отримання квадратів чисел:

squares = {}
for x in range(1, 6):
    squares[x] = x ** 2

print(squares)

На цьому етапі ви можете задатися питанням, навіщо використовувати розуміння, коли можна використовувати цикли. Основним правилом програмування є написання компактного та ефективного коду.

Ви також можете застосувати умови до свого розуміння. Наприклад, ви можете створити словник, який містить лише парні числа та їх квадрати:

even_squares = {x: x**2 for x in range(1, 6) if x % 2 == 0}
print(even_squares)

Запуск цього коду створить новий словник, подібний до наступного:

{2: 4, 4: 16}

Зворотні ключі та значення

Ви також можете легко перевертати елементи словника за допомогою розуміння словника в Python.

Наступний код демонструє, як змінити ключі та значення існуючого словника за допомогою розуміння словника:

original_dict = {"one": 1, "two": 2, "three": 3, "four": 4}
reversed_dict = {v: k for k, v in original_dict.items()}
print(reversed_dict)

Наведене вище розуміння словника (або розуміння дикту) надрукує наступне:

{1: 'one', 2: 'two', 3: 'three', 4: 'four'}

Підручник із розуміння словника Python

Щоб краще зрозуміти, що таке словники та як їх можна використовувати в різних випадках, перегляньте наведене нижче відео:

Надані приклади служать міцною основою для використання розуміння словника у ваших проектах Python.

Крім того, розуміння словника можна додатково оптимізувати, дозволяючи одному рядку коду виконувати складні завдання, які можуть споживати більше часу та пам’яті з циклами.

3 основні переваги розуміння словника

Ви відчули елегантність розуміння словника завдяки наданим прикладам. Крім читабельності, розуміння пропонує кілька переваг, включаючи ефективність, під час роботи з ефективною структурою хеш-таблиці ключ/значення Python, що називається розумінням dict .

1. Створення зрозумілого та простого коду

Розуміння дозволяє створювати нові словники без особливих зусиль і в зрозумілій манері. Вони роблять ваш код більш пітонічним, ніж традиційні цикли.

2. Краща продуктивність зі стилем

Розуміння не тільки елегантне, але й ефективне. Вони часто працюють швидше, ніж цикли for, оскільки використовують один вираз. Python оптимізує цей тип коду, усуваючи необхідність багаторазового виклику конструктора словника або використання методу update().

3. Легка фільтрація та перетворення даних

Ще однією перевагою розуміння словника є його простота фільтрації та перетворення даних. Наприклад, ви можете створити новий словник із наявного, застосувавши умову або змінивши ключі чи значення.

Дуже важливо розуміти, коли використовувати розуміння словників у Python, оскільки вони можуть швидко стати складними та складнішими для читання та запису. Тепер давайте дослідимо деякі випадки використання для розуміння словника в Python.

3 приклади використання словникового розуміння

Розуміння корисно в таких 3 сценаріях:

1. При створенні словника з двох списків

{key:value for key, value in zip(list1, list2)}

2. Під час фільтрації словника на основі значення

{k: v for k, v in original_dict.items() if v > threshold}

3. При перетворенні ключів або значень

{k.upper(): v * 2 for k, v in original_dict.items()}

Важливо пам’ятати, що хоча розуміння може зробити ваш код більш елегантним і ефективним, його також може стати важко читати, якщо він надто складний.

Давайте розглянемо деякі з найпоширеніших пасток під час використання словникового розуміння.

Підводні камені розуміння словника

Розуміння словника приносить елегантність і ефективність, але також пов’язане з труднощами. Ми обговоримо типові підводні камені, пов’язані з читабельністю, складністю та продуктивністю великих наборів даних.

Баланс між складністю та читабельністю

Складне розуміння словника може бути важко читати. Надайте пріоритет читабельності коду, особливо коли працюєте з іншими. У деяких випадках традиційні цикли for можуть бути простішими та зручнішими в обслуговуванні.

Продуктивність із великими наборами даних

Для великих наборів даних розуміння словника не завжди може бути оптимальним. Відповідно до Stack Overflow , вбудований конструктор dict() може перевершити розуміння словника з численними парами ключ-значення через циклічність у C.

Порівняння з іншими методами

У цьому розділі ми порівняємо розуміння словника з двома альтернативними методами створення словників у Python: циклами for і лямбда-функціями.

Для циклу

Використання циклу for для створення словника передбачає ініціалізацію порожнього словника, а потім ітерацію по потрібній дійсній парі ключ-значення, додаючи кожну пару до словника. Це більш докладний метод порівняно з розумінням за словником.

Нижче наведено приклад створення словника за допомогою циклів for:

dictionary = {}
for key, value in zip(keys, values):
    dictionary[key] = value

І навпаки, розуміння словника дозволяє досягти того самого результату в одному рядку:

dictionary = {key: value for key, value in zip(keys, values)}

Підручник із розуміння словника Python

Як бачите, розуміння забезпечує стислий і більш читабельний спосіб створення словників у Python.

Лямбда-функції

Ми також можемо використовувати функції Lambda для створення словників. Лямбда-функції — це спосіб створення невеликих анонімних функцій у Python. Їх можна використовувати в поєднанні з функцією map() для створення словника.

Давайте розглянемо приклад функцій Lambda для створення словників:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

key_value_pairs = map(lambda key, value: (key, value), keys, values)
dictionary = dict(key_value_pairs)

Для порівняння, ось як можна створити той самий словник за допомогою розуміння:

dictionary = {key: value for key, value in zip(keys, values)}

Підручник із розуміння словника Python

Знову ж таки, розуміння словника надає стислу та більш читабельну альтернативу створенню словників за допомогою лямбда-функцій і функції map().

Найкращі методи розуміння словника

Використовуючи розуміння в Python, важливо дотримуватися найкращих практик, щоб покращити читабельність, зручність обслуговування та ефективність. Нижче наведено кілька практичних порад.

1. Дотримуйтесь простого розуміння словника

Розуміння словника є потужним, але воно має бути ясним і лаконічним. Якщо ваше розуміння стає надто складним або охоплює кілька рядків, подумайте про використання традиційного циклу for. Це допомагає зрозуміти код, особливо для інших або під час повторного перегляду вашої роботи пізніше.

2. Використовуйте вбудовані функції

Python пропонує такі вбудовані функції, як zip() і enumerate(), які допомагають створювати розуміння. Використовуйте ці функції, щоб оптимізувати свій код і зробити його більш читабельним.

Наприклад, використання zip() для об’єднання двох списків і створення словника призводить до стислого та чистого коду, подібного до цього:

{key: value for key, value in zip(keys, values)}

3. Розумно використовуйте умовні оператори

Включайте умовні твердження у своє розуміння, коли це необхідно, але не зловживайте ними. Вони можуть допомогти відфільтрувати або змінити отриманий словник, але занадто багато вкладених умов може ускладнити читання коду. Простий приклад використання умовного оператора:

{x: x**2 for x in range(10) if x % 2 == 0}

4. Пам’ятайте про розуміння вкладеного словника

Розуміння вкладеного словника може створювати словники з вкладеними структурами. Однак, як і умовні оператори, надлишок вкладеного словника може ускладнити розшифровку коду. Уникайте переходу за межі двох рівнів вкладеності у своєму розумінні вкладеного словника.

Іноді вам може знадобитися використовувати вкладене розуміння словника всередині циклів, щоб досягти бажаної ефективності.

Наше останнє слово

Наразі ви освоїли розуміння словника в Python. Ця елегантна та ефективна техніка допомагає створювати словники шляхом ітерації через ітерації або використання умов. Розуміння оптимізує ваш код, підвищуючи читабельність і зручність обслуговування.

Створювати нові словники легко для розуміння, заощаджуючи час і зусилля порівняно з традиційними циклами for. Вони корисні в реальних програмах, таких як обробка даних, відображення та перетворення.

Якщо ви хочете вдосконалити свої знання Python і стати справжнім професіоналом, пройдіть наш курс Python і подивіться, як ми створюємо найкращих у світі користувачів Python.


Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.