Набор 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 и переиздана здесь с разрешения.