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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.