Набор Python - это мощный тип данных коллекций, который в определенных случаях предлагает несколько преимуществ в производительности по сравнению с объектами списков.

Python не зря является одним из самых популярных языков программирования в мире - он предоставляет мощные встроенные типы данных для решения типичных проблем. set datatype можно использовать для эффективных коллекций, где требуется уникальность. Python sets более производительный, чем lists, когда дело доходит до поиска, но немного менее производительный при итерации по элементам.

Краткое введение в Python Set Datatype

Наборы Python предоставляют несколько методов, с помощью которых можно добавлять, удалять или извлекать элементы. Самый простой метод - это метод set.add(). Официальная документация Python описывает наборы следующим образом (R):

«Набор - это неупорядоченная коллекция без повторяющихся элементов. Основное использование включает тестирование членства и устранение повторяющихся записей. Объекты-наборы также поддерживают математические операции, такие как объединение, пересечение, различие и симметричное различие ».

Некоторые важные выводы - это отсутствие повторяющихся элементов, тестирование членства и необычные математические операции. Они считаются определяющими характеристиками set datatype Python.

Метод Python set.update

Чтобы получить полное представление о set.update методе Python, нужно сравнить его с set.add методом. Это сравнение расслоит варианты использования и базовые функции, по которым следует выбирать set.update. Итак, мы сосредоточены на set.update, но по ходу я буду включать несколько сравнительных примеров.

Добавление отдельных элементов

Ниже приведен быстрый пример создания набора и добавления элементов с помощью метода set.add. Обратите внимание на ошибку во втором примере, указывающую, что таким образом можно добавить только отдельные элементы. Это отличительный признак того, что следует подумать о методе обновления. В противном случае необходимо перебрать все элементы, предназначенные для добавления в цикл (последний пример). См. ниже:

Примечание. Я создал набор, используя буквальную нотацию, а не set(). Этот синтаксис нельзя использовать для создания пустых наборов, поскольку он создаст пустой объект словаря.

Добавление нескольких элементов

Добавление нескольких элементов к set - вот где приходит на помощь метод set.update(). Его использование несложно, но есть некоторые заметные контексты, в которых следует проявлять осторожность.

Объекты словаря

Обратите внимание, что для метода set.update требуется итерация нескольких элементов. Соответствующие структуры включают объекты Lists, Tuples и даже Dictonary. Также обратите внимание, что метод set.update() будет использовать только ключи из объекта Dictionary. Например:

Python также позволяет создавать объект словаря с использованием нескольких ключей, хотя повторяющиеся значения будут игнорироваться. Это может вызвать некоторую путаницу, и о чем стоит помнить, особенно при работе с объектами словаря и заданными объектами. Например:

Объекты кортежа

Кортежи - еще один случай, когда нужно быть осторожным. В то время как кортежи добавляются целиком с использованием метода add(), при обновлении добавляются отдельные элементы. Если членство в кортеже важно, метод add() более подходит. Например:

В последнем примере обратите внимание, что кортеж, добавленный как член итерации, добавляется полностью. Это показывает, что метод set.update() не рекурсивный.

Строковые объекты

Добавление строк в наборы связано с некоторыми крайними случаями, о которых также следует помнить - в первую очередь, возможная интерпретация строк как character итераций. Помните, что метод update() принимает в качестве аргумента итерацию - метод add принимает единственный элемент. При передаче в метод обновления строки из нескольких символов она будет интерпретироваться как итерация и обрабатываться как таковая. Рассмотрим следующий пример:

Последние мысли

Понятно, что у метода Python set.update() есть несколько предпочтительных вариантов использования. Как правило, это предпочтительно, когда нужно добавить несколько элементов к заданному объекту. Наборы обеспечивают гораздо более эффективное тестирование членства - особенно для больших наборов данных - хотя и несколько менее производительную итерацию.

Помня о перечисленных здесь и крайних случаях, можно лучше оценить, когда повышение производительности наборов перевешивает потери по сравнению с другими типами данных коллекции, такими как списки. Кроме того, почти наверняка, если помнить о вариантах использования, динамике и граничных особенностях метода set.update(), это окажется полезным при обработке данных в любом проекте.

Статья « Использование метода Python set.update для развлечения и прибыли изначально была опубликована на веб-сайте OverCoded и переиздана здесь с разрешения.