Python’s Set.Clear ()
Способ удаляет все элементы из этого набора. Все переменные, которые относятся к этому набору объекта, будут ссылаться на пустой набор после вызова метода.
Вот минимальный пример, где вы удаляете три элемента из набора сразу с помощью S.CLEAR ()
Метод:
>>> s = {1, 2, 3} >>> s.clear() >>> s set()
Синтаксис
Давайте «погрузимся» в формальный синтаксис Set.Clear ()
Метод – простое упражнение! 🙂.
set.clear()
– | – | – |
Set.Clear ()
Функция не требует аргументов, даже не является необязательным. Если вы попытаетесь пройти аргумент в Set.Clear ()
Функция, это бросит TypeError: Clear () не принимает аргументов (1 дано)
Отказ
>>> s = {1, 2, 3} >>> s.clear(2) Traceback (most recent call last): File "", line 1, in s.clear(2) TypeError: clear() takes no arguments (1 given)
Возвращаемое значение набора Clear ()
Возвращаемое значение Set.Clear ()
это Нет
Отказ
Проблема сглаживания с установленным Clear ()
Вы можете столкнуться с проблемой, где две переменные var_1
и var_2
указать на тот же набор. Если вы очистите набор на одной переменной, например, var_1.clear ()
, вы увидите влияние на вторую переменную, например, var_2
это также становится пустым. Держите это в виду!
>>> var_1 = {'Alice', 'Bob', 'Liz'} >>> var_2 = var_1 >>> var_1.clear() >>> var_1 set() >>> var_2 set()
Обе переменные теперь относятся к пустому объекту, потому что Очистить ()
Функция действительно работает на заданном объекте, а не переменная, указывающая на него, и она не создает копию сначала, поэтому будьте осторожны!
Что такое временная сложность установленного ясного ()?
Сложность времени выполнения Set.Clear ()
Функция на комплекте с N Элементы это O (n) Отказ Итак, Python’s Set.Clear ()
Метод имеет Линейная сложность времени выполнения Отказ Причина в том, что она итализация по всем элементам в наборе и удаляет их одностороннее – более элементы, тем больше они требуют.
Вы можете увидеть это в следующем простом эксперименте, в котором мы запускаем метод SET несколько раз для увеличения числа заданных элементов.
Я провел этот эксперимент на моем Acer Aspire 5 ноутбука (Я знаю) с Intel Core I7 (8-й GEN) процессор и 16 ГБ памяти. Вот код эксперимента:
import matplotlib.pyplot as plt import time sizes = [10**3, 10**4, 10**5, 10**6, 10**7, 10**8] runtimes = [] for size in sizes: s = set(range(size)) # Start track time ... t1 = time.time() s.clear() 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 One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.