Розпакування словників за допомогою **
Свайпніть щоб показати меню
Під час роботи зі словниками в Python оператор ** надає лаконічний і потужний спосіб розпаковки їхнього вмісту. Розпаковка за допомогою ** дозволяє передавати елементи словника як іменовані аргументи у функції або об'єднувати кілька словників разом. Ця техніка особливо корисна для написання гнучкого та багаторазового коду, який може працювати з різними наборами іменованих параметрів.
Оператор ** приймає словник і розгортає його пари ключ-значення в окремі іменовані аргументи. Це часто використовується при виклику функцій, які приймають іменовані аргументи, дозволяючи передавати словник напряму замість того, щоб вказувати кожен аргумент вручну. Ще одне практичне застосування — об'єднання двох або більше словників у новий, де всі пари ключ-значення поєднуються в одному словнику.
12345def print_person(name, age): print(f"Name: {name}, Age: {age}") person_info = {"name": "Alice", "age": 28} print_person(**person_info)
Цей код демонструє розпаковку словника за допомогою оператора **. Коли ви ставите ** перед словником у виклику функції, Python «розгортає» пари ключ-значення та передає їх як окремі іменовані аргументи. У цьому прикладі print_person(**person_info) функціонально ідентично до написання print_person(name="Alice", age=28). Для коректної роботи ключі словника повинні точно відповідати іменам параметрів, визначених у сигнатурі функції.
12345defaults = {"color": "blue", "size": "medium"} overrides = {"size": "large", "style": "bold"} merged = {**defaults, **overrides} print(merged)
Тут показано злиття словників. Використовуючи ** у новому літералі словника, Python розгортає пари ключ-значення як з defaults, так і з overrides в один об'єкт.
Якщо ключі збігаються — як "size" у цьому прикладі — пріоритет має словник, який знаходиться пізніше у послідовності. Тут значення "large" з overrides замінює "medium" з defaults, у результаті чого формується об'єднаний словник, що містить усі унікальні ключі з пріоритетом останніх значень.
1. Який результат використання ** для словника у виклику функції?
2. Який спосіб об'єднує два словники за допомогою розпакування в Python?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат