Рубрики
Без рубрики

Python Set Add ()

Метод Python Set.add (Element) Добавляет элемент к этому набору. Если элемент уже присутствует в наборе, метод возвращается без побочного эффекта. https://youtu.be/hhV8sz4O34 M Вот минимальный пример, где мы добавляем элемент 4 на существующий набор: >>> S = {1, 2, 3} >>> S.ADD (4) >>> S {1, 2, 3, 4} синтаксис Давайте … Python Set Add () Подробнее »

Автор оригинала: Chris.

Python’s set.add (элемент) Метод добавляет элемент к этому установленный . Если элемент уже присутствует в наборе, метод возвращается без побочного эффекта.

Вот минимальный пример, где мы добавляем элемент 4 на существующий набор:

>>> s = {1, 2, 3}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

Синтаксис

Давайте погрузимся в формальный синтаксис set.add () метод.

set.add(element)
элемент Hashable объект Hashable объект, который будет добавлен в комплект.

Возвращаемое значение Set Add ()

Возвращаемое значение set.add () это Нет Отказ

Что такое ушатный объект?

Вы можете добавлять только hashable объекты на набор. Но что это значит для объекта, чтобы быть Hashable ?

Двигирование объекта означает, что вы положили его через хеш-функция это назначает целое число объекту. Python делает это с помощью объект .__ хеш __ () Метод «Dunder» или «Doublederscore». Этот метод определяет поведение для объекта, если вы передаете его в встроенный Python хеш () функция.

💡 Встроенный хэш (объект) Python (объект) Python принимает один объект в качестве аргумента и возвращает его значение HASH. Поскольку значение HASH рассчитывается на основе данных объекта, два разных но равных объекта должны иметь одинаковое значение хеша.

Вы можете узнать все об этом в этом видео:

Почему для объекта важно быть хмаривым?

Причина проста: Установить и Словарь Структуры данных основаны на так называемом хеш-таблица структура данных. Эта структура данных обеспечивает быстрое поиск любого данного объекта, просто вызывая его хеш-функцию. Подумайте об этом таким образом: возвращаемое значение хеш-функциональных подсказок на расположение элемента в структуре данных контейнера.

Это основная причина того, что набор и структуры данных словаря настолько эффективны с точки зрения операций по членству и поиску.

Другими словами, Хашимость Позволяет использовать объект как часть набора или словаря из-за правильной реализации обсуждаемых хэш-функций.

Однако не все объекты могут быть переданы в хеш () Функциональная только Hashable объекты. Состояние на одновременном объектах состоит в том, что они никогда не меняются, внедрили __hash __ () Метод, и их можно сравнить с объектами, реализующими Dumper __eq __ () метод также.

  • Объект с реализованным __hash __ () Метод, но не реализован __eq __ () Метод это не хмашно Отказ
  • Объект с реализованным __eq __ () Метод, но не реализован __hash __ () Метод это не хмашно Отказ
  • Объект с реализованным __hash __ () и __eq __ () Методы это Hashable Отказ
  • Объект с реализованным __hash __ () и __eq __ () Методы, но это смещается, это не хмашно. Причина в том, что мутуматам позволяет изменять значения данных объектов, которые могут привести к изменению возвращаемого значения __hash __ () Что может сломать код, потому что он может привести к поведению, где элемент находится в однократной стороне структуры данных и в другой раз.

Кроме того, если два хумных объекта имеют одинаковые хеш-значения, которые возвращаются __hash __ () Метод, они также должны сравнивать равномерно в отношении __eq __ () метод.

Как добавить элемент на набор?

Добавить hashable элемент к Установить , позвоните set.add (элемент) . Если элемент уже является членом набора, набор не меняется.

>>> fruits = {'banana', 'apple'}
>>> fruits.add('strawberry')
>>> fruits
{'apple', 'banana', 'strawberry'}
>>> fruits.add('strawberry')
>>> fruits
{'apple', 'banana', 'strawberry'}

Как добавить в пустой набор в Python?

Добавить hashable элемент Пустое Установить , позвоните set.add (элемент) .

>>> fruits = set()
>>> fruits.add('strawberry')
>>> fruits
{'strawberry'}

Как добавить несколько элементов на набор?

Чтобы добавить несколько элементов или всех элементов на набор, который хранится в заданном сведении, пропустите ее потенциал в функции set.update (ИТЕРАЛИТЕ) Отказ

>>> fruits = {'apple', 'banana'}
>>> basket_to_add = ['strawberry', 'cocos']
>>> fruits.update(basket_to_add)
>>> fruits
{'apple', 'cocos', 'banana', 'strawberry'}

Как добавить список на набор?

Учитывая набор и список. Чтобы добавить все элементы списка элементов на набор, пройдите в функцию ITERABLE в функции set.update (ИТЕРАЛИТЕ) Отказ

>>> fruits = {'apple', 'banana'}
>>> basket_to_add = ['strawberry', 'cocos']
>>> fruits.update(basket_to_add)
>>> fruits
{'apple', 'cocos', 'banana', 'strawberry'}

Python set add () vs Обновление ()

Разница между set.add (элемент) и set.update (Элементы) Это первая добавляет Один элемент на множество и последнее добавляет несколько элементов на набор.

Другими словами:

  • set.add () Добавляет элемент на этот набор.
  • set.update () Добавляет все элементы, которые находятся в любом из указанных настроек аргументов.

Этот пример кода показывает обе функции в действии:

>>> fruits = {'apple', 'banana'}
>>> basket_to_add = ['strawberry', 'cocos']
>>> fruits.update(basket_to_add)
>>> fruits
{'apple', 'cocos', 'banana', 'strawberry'}
>>> fruits.add('berry')
>>> fruits
{'berry', 'strawberry', 'banana', 'apple', 'cocos'}

Что такое временная сложность набора Add ()?

Сложность времени выполнения set.add () Функция O (1), потому что установленная структура данных Python реализована в виде хэш-таблицы, и вы можете ожидать поиска, вставки и удаления операций, чтобы иметь постоянную сложность времени выполнения. Тем не менее, это только в среднем – время от времени вы можете столкнуться с столкновениями, которые могут привести к увеличению сложности времени выполнения до (N) из-за обработки столкновений. В среднем, однако, сложность выполнения SET.ADD () остается O (1).

Вы можете увидеть это в следующем простом эксперименте, в котором мы запускаем метод SET несколько раз для увеличения числа заданных элементов.

Я провел этот эксперимент на моем Acer Aspire 5 ноутбук (Я знаю) с Intel Core I7 (8-й GEN) процессор и 16 ГБ памяти. Вот код эксперимента:

import matplotlib.pyplot as plt
import random
import time

sizes = [10**3, 10**4, 10**5, 10**6, 10**7]
runtimes = []

for size in sizes:
    s = set(range(size))

    # Start track time ...
    t1 = time.time()
    s.add(9999999999999)
    s.add(42)
    t2 = time.time()
    # ... end track time
    
    runtimes.append(t2-t1)


plt.plot(sizes, runtimes)
plt.ylabel('Runtime (s)')
plt.xlabel('Set Size')

plt.show()

Другие методы набора Python

Все Установить методы называются данными Установить Отказ Например, если вы создали набор s = {1, 2, 3} Вы бы назвали S.CLEAR () Чтобы удалить все элементы набора. Мы используем термин «Этот набор» обратиться к множеству, на котором выполняется метод.

Добавить() Добавьте элемент на этот набор
Чисто() Удалите все элементы из этого набора
Копировать () Создать и вернуть плоскую копию этого набора
разница() Создайте и верните новый набор, содержащий все элементы этого набора, кроме те, которые в данных аргументах. Полученный набор имеет максимум максимально возможным элементам, как и любой другой.
Разница_update () Удалите все элементы из этого набора, которые являются членами любого из заданных аргументов.
отказаться() Удалите элемент из этого набора, если он является членом, иначе ничего не сделайте.
Пересечение () Создайте и верните новый набор, который содержит все элементы, которые являются членами всех наборов: это также указано. Отказ
Intersection_Update () Удаляет все элементы из этого набора, которые не являются членами во всех других указанных наборах.
iSdisjoint () Верните true, если ни один элемент из этого набора не является членом любого другого указанного набора. Наборы пересекаются, если и только если их пересечение – это пустой набор.
issubset () Верните True, если все элементы этого набора являются членами указанного набора аргумента.
ОСУПЕРСЕТ () Верните true, если все элементы указанного набора аргумента являются членами этого набора.
поп () Удалить и вернуть случайный элемент из этого набора. Если набор пуст, он поднимет брелок.
Удалить() Удалите и верните определенный элемент из этого набора, как определено в аргументе. Если набор не содержит элемента, он поднимет keyError.
Symmetric_difference () Верните новый набор с элементами в этом наборе или указанном наборе аргумента, но не элементы, которые являются членами обоих.
Symmetric_difference_update () Замените этот набор с помощью симметричной разницы, то есть элементы в этом наборе или указанном наборе аргумента, но не элементы, которые являются членами обоих.
Союз () Создайте и верните новый набор со всеми элементами, которые находятся в этом наборе или в любом из указанных настроек аргументов.
Обновить() Обновите этот набор со всеми элементами, которые находятся в этом наборе, или в любом из указанных настроек аргументов. Полученный набор имеет по меньшей мере, как и любой другой элементы.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/python-set-add/”