Программирование, Python

Что такое распаковка в Python

Понимание распаковки в Python с примерами

В этой статье мы рассмотрим unpacking, extended unpacking & nested unpacking. Давайте начнем.

Распаковка

Процесс разделения упакованных значений на отдельные элементы называется «unpacking». Упакованные значения - strings, lists, tuples, sets, and dictionaries.

Во время распаковки элементы из RHS (правая сторона) разделяются на их относительное положение на LHS (левая сторона). Мы увидим, как это работает, на следующих примерах.

Как видно из двух приведенных ниже примеров, элементы из RHS распаковываются в переменные LHS в зависимости от относительного положения.

Пример 1: Использование списка, кортежа и строки

Пример 2: Использование наборов и словарей

Поскольку sets & dictionaries - это неупорядоченный набор элементов, не гарантируется, что распаковка будет давать одинаковые результаты каждый раз, в отличие от строк, списков и кортежей, которые представляют собой упорядоченный набор элементов. Обратите внимание, что для типа dictionary распаковка выполняется по ключам.

Советы. Поскольку наборы и словари представляют собой неупорядоченный набор элементов, не рекомендуется использовать их для распаковки, поскольку нет гарантии в порядке результатов.

Расширенная итеративная распаковка

Расширенная итеративная распаковка выполняется с помощью операторов * и **.

* Оператор

Иногда нам не хочется распаковывать все элементы. Нам может быть интересно распаковать только первый или последний элемент и поместить остальные элементы в переменную. Этого можно добиться с помощью оператора *.

Примечание: оператор * можно использовать только один раз в LHS оператора присваивания, если он не используется во вложенной распаковке.

Пример 3. Использование списка, кортежа, строки

Пример 4. Использование наборов и словарей

** Оператор

Как вы заметили из приведенных выше примеров, оператор * выполняет итерацию по ключам в словаре. Если мы хотим перебрать пары key-value, мы должны использовать ** operator.

Примечание: оператор ** нельзя использовать в LHS оператора присваивания.

Пример 5. Использование словарей

Вложенная распаковка

Те же концепции, которые мы только что использовали для распаковки и расширенной распаковки, применимы и к вложенной распаковке. Единственная разница в том, как следует из названия - он вложен. Давайте посмотрим на примеры:

Пример 6: Использование списка, кортежа и строки

Заключение

Надеюсь, вы поняли, что распаковывает в Python и как это работает.

Если вам интересно узнать больше о Python, вот еще несколько статей, которые могут вам понравиться:

  1. Как использовать Python для циклов for и while
  2. Оптимизация в Python - стажировка
  3. Оптимизация в Python - Peephole
  4. Изменчивость и неизменность в Python

Чтобы читать больше таких интересных статей о Python и Data Science, подпишитесь на мой блог www.pythonsimplified.com. Вы также можете связаться со мной в LinkedIn.