Друкарня від WE.UA

Всіх вітаю! У даній статті ми продовжимо тему спеціальних властивостей словників у Python. На цей раз ми поговоримо про модуль operator та його клас itemgetter(), яка дозволяє працювати зі списками та словниками у Python.

Суть itemgetter()

У модулі operator клас itemgetter() призначений для обрання елементів із ітерованих типів даниих. Варто всього лиш викликати його та передати потрібний елемент (або елементи) і ми отримаємо його.

До речі, варто також надати увагу й тому факту, що itemgetter() є не функцією, а саме класом.

Робота функції itemgetter()

Для початку роботи нам варто імпортувати модуль operator. Даний модуль є вбудованим, тому втсановлювати його потреби немає:

import operator

Приклад роботи зі списками

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

Ось приклад, де ми беремо одразу три елементи зі списку:

english_football_clubs = ["Arsenal", "Chelsea", "Man City", "Brighton"]
get_elements = operator.itemgetter(0, 1, 3)

print(get_elements(english_football_clubs))
('Arsenal', 'Chelsea', 'Brighton')

Якраз у останньому рядку ми й можемо помітити, що маємо справу з класом, бо саме там ми записуємо змінну get_elements та надаємо їх список у дужках. По суті, get_elements — це екземпляр класу itemgetter().

Також можна застосовувати дану функцію для сортування списків. Для цього варто всього лиш передати функції sorted() змінну із результатом itemgetter() у параметр key. Таким чином, ми можемо легко й просто сорутвати елементи за один або більше елементами.

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

chemical_elements = [("H", 2.20, 1.008), ("Na", 0.93, 22.98976928), ("Mg", 1.31, 24.305), ("Li", 0.98, 6.94)]

get_elements = operator.itemgetter(2)
sort_elements = sorted(chemical_elements, key=get_elements)
print(sort_elements)

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

[('H', 2.2, 1.008), ('Li', 0.98, 6.94), ('Na', 0.93, 22.98976928), ('Mg', 1.31, 24.305)]

Тепер сортуємо за першим елементом у кортежах (тобто за електронегативністю):

chemical_elements = [("H", 2.20, 1.008), ("Na", 0.93, 22.98976928), ("Mg", 1.31, 24.305), ("Li", 0.98, 6.94)]

get_elements = operator.itemgetter(1)
sort_elements = sorted(chemical_elements, key=get_elements)
print(sort_elements)
[('Na', 0.93, 22.98976928), ('Li', 0.98, 6.94), ('Mg', 1.31, 24.305), ('H', 2.2, 1.008)]

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

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

Ось приклад коду, де ми взяли три значення за ключами:

import operator

tasks = {"Monday": "Training",
         "Tuesday": "Chess learning",
         "Wednesday": "Studying",
         "Thursday": "Go on the concert",
         "Friday": "Football game",
         "Saturday": "Room cleaning",
         "Sunday": "Go to park"}

get_values = operator.itemgetter("Sunday", "Saturday", "Friday")
print(get_values(tasks))
('Go to park', 'Room cleaning', 'Football game')

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

Висновок

У рамках даної статті ми навчилися працювати із класом itemgetter(), використовуючи різні типи даних. Крім того, ми розглянули те, чим є itemgetter() та приділили увагу синтаксичній особливості використання.
Всім дякую за увагу!

Статті про вітчизняний бізнес та цікавих людей:

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Magnifique numérique
Magnifique numérique@nocturnal_reader

Нічний читач

56Довгочити
867Перегляди
18Підписники
Підтримати
На Друкарні з 14 липня 2025

Більше від автора

  • Список різноманітних бібліотек у Python

    Всіх вітаю! Сьогодні хочу поділитися великим списком бібліотек у Python для різного призначення та потреб:https://github.com/vinta/awesome-pythonТут багато цікавих бібліотек зібрано за сферами їхньго призначення.

    Теми цього довгочиту:

    It
  • Roadmap — ваш путівник до поставлених цілей.

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

    Теми цього довгочиту:

    It
  • Метод split() у Python

    Всіх вітаю! Сьогодні ми розглянемо метод split() у Python та побачимо, як використовувати її на прикладах.

    Теми цього довгочиту:

    Програмування

Це також може зацікавити:

  • Нова спільнота web розробників

    У сучасному цифровому світі важливо мати майданчики, де фахівці можуть обмінюватися досвідом, отримувати підтримку та навчатися. Для українських веб-розробників з’явився новий ресурс — WOX (https://wox.in.ua).

    Теми цього довгочиту:

    Websites
  • Що таке принципи безпеки?

    Кожному принципу безпеки автоматично присвоюється ідентифікатор безпеки (SID) під час його створення. У Windows Server 2003 реєстраційні записи безпеки є основою для контролю доступу до ресурсів, що охороняються.

    Теми цього довгочиту:

    Безпека В Інтернеті
  • Java. Короткий огляд еволюції багатопотоковості

    У перших версіях Java багатопоточність реалізовувалася за допомогою класу Thread, який дозволяв створювати нові потоки. Проте ця модель мала багато недоліків:

    Теми цього довгочиту:

    Java

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити:

  • Нова спільнота web розробників

    У сучасному цифровому світі важливо мати майданчики, де фахівці можуть обмінюватися досвідом, отримувати підтримку та навчатися. Для українських веб-розробників з’явився новий ресурс — WOX (https://wox.in.ua).

    Теми цього довгочиту:

    Websites
  • Що таке принципи безпеки?

    Кожному принципу безпеки автоматично присвоюється ідентифікатор безпеки (SID) під час його створення. У Windows Server 2003 реєстраційні записи безпеки є основою для контролю доступу до ресурсів, що охороняються.

    Теми цього довгочиту:

    Безпека В Інтернеті
  • Java. Короткий огляд еволюції багатопотоковості

    У перших версіях Java багатопоточність реалізовувалася за допомогою класу Thread, який дозволяв створювати нові потоки. Проте ця модель мала багато недоліків:

    Теми цього довгочиту:

    Java