Что делает метод list clear
Перейти к содержимому

Что делает метод list clear

  • автор:

Метод list.clear() в Python, очищает список

Метод clear() был включен для обеспечения согласованности с интерфейсами изменяемых контейнеров, которые не поддерживают срезы, такие как dict и set .

Эта операция поддерживаются изменяемыми типами последовательностей.

Примеры очистки значений списка.

>>> x = [3, 6, 9] >>> x.clear() >>> x # [] >>> x = ['one', 'two', 'three', [3, 6, 9]] >>> x.clear() >>> x # [] >>> x = [3, 6, 9, 11, 13] >>> del x[:] # [] 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Изменение/замена элемента списка по индексу
  • Изменение части списка операцией среза
  • Изменение списка срезом c заданным шагом
  • Удаление части списка операцией среза
  • Удаление части списка по срезу с заданным шагом
  • Метод list.append(), добавляет значение в конец списка
  • Метод list.clear(), очищает список
  • Метод list.copy(), копия списка
  • Метод list.extend(), расширяет список другой последовательностью
  • Расширение списка его содержимым
  • Метод list.insert(), вставить элемент по индексу
  • Метод list.pop(), получение с удалением элемент списка
  • Метод list.remove(), удаление элемента списка по значению
  • Метод list.reverse(), разворачивает элементы списка
  • Удаление элемента списка по индексу
  • Удаление дубликатов из списка Python с сохранением очередности

Что делает метод list clear

Описание

Метод clear позволяет целиком очистить список, и удалить все его элементы. После успешного выполнения длина списка становится равной 0.

В случае, если массив фиксированный длины, то, генерируется ошибка UnsupportedError , а элементы остаются неизменными.

Смотрите также

List::removeAt — Удаляет произвольный элемент списка

List::removeLast — Извлекает и возвращает последний элемент списка

List::removeRange — Удаляет ряд элементов из списка

Методы списков Python

Для добавления множества элементов используйте extend() . Внимание: Данный метод модифицирует исходный объект на месте, возвращая при этом None .

list.clear( i ) ¶

Удаляет из списка все имеющиеся в нём значения.

my_list = [1, 2, 3]
my_list.clear() # None
my_list # []

Действие метода эквивалентно выражению del my_list[:] .

list.copy() ¶

Возвращает копию списка. Внимание: Возвращаемая копия является поверхностной (без рекурсивного копирования вложенных элементов).

my_list = [1, 2, 3]
my_list_copy = my_list.copy() # [1, 2, 3]
my_list # []

Действие метода эквивалентно выражению my_list[:] .

list.count(x) ¶

random_list = [4, 1, 5, 4, 10, 4]
random_list.count(4) # 3

Метод count считает количество значений x в списке.

list.extend(iterable) ¶

Дополняет список элементами из указанного объекта.

  • it : Объект, поддерживающий итерирование, элементами которого требуется дополнить список.
my_list = []
my_list.extend([1, 2, 3]) # None
my_list # [1, 2, 3]
my_list.extend('add') # None
my_list # [1, 2, 3, 'a', 'd', 'd']

Для добавления единственного элемента используйте append() .

Внимание: Данный метод модифицирует исходный объект на месте, возвращая при этом None .

list.index(x , start , end ) ¶

Метод возвращает положение первого индекса, со значением х . Также можно указать границы поиска start и end .

list.insert(i, x) ¶

Вставляет указанный элемент перед указанным индексом

  • i : Позиция (индекс), перед которой требуется поместить элемент. Нумерация ведётся с нуля. Поддерживается отрицательная индексация.
  • x : Элемент, который требуется поместить в список.
my_list = [1, 3]
my_list.insert(1, 2)
my_list # [1, 2, 3]
my_list.insert(-1, 4)
my_list # [1, 2, 4, 3]

Внимание: Данный метод модифицирует исходный объект на месте, возвращая при этом None .

list.pop( i ) ¶

Возвращает элемент на указанной позиции , удаляя его из списка.

  • i=None : Позиция искомого элемента в списке (целое число). Если не указана, считается что имеется в виду последний элемент списка. Отрицательные числа поддерживаются.
my_list = [1, 2, 3, 4, 5]
last = my_list.pop() # 5
my_list # [1, 2, 3, 4]
second = my_list.pop(-3) # 2
my_list # [1, 3, 4]
first = my_list.pop(0) # 1
my_list # [3, 4]

Чтобы удалить элемент из списка не возвращая его, воспользуйтесь list.remove() .

list.remove(x) ¶

Удаляет из списка указанный элемент.

  • x : Элемент, который требуется удалить из списка. Если элемент отсутствует в списке, возбуждается ValueError . Удаляется только первый обнаруженный в списке элемент, значение которого совпадает со значением переданного в метод.
my_list = [1, 3]
my_list.remove(1)
my_list # [3]
my_list.remove(4) # ValueError

Внимание: Данный метод модифицирует исходный объект на месте, возвращая при этом None .

list.reverse() ¶

Перестраивает элементы списка в обратном порядке.

my_list = [1, 'two', 'a', 4]
my_list.reverse() # None
my_list # [4, 'a', 'two', 1]

Внимание: Данный метод модифицирует исходный объект на месте, возвращая при этом None .

list.sort(key=None, reverse=False) ¶

Сортирует элементы списка на месте.

  • key=None : Функция, принимающая аргументом элемент, используемая для получения из этого элемента значения для сравнения его с другими.
  • reverse=False : Флаг, указывающий следует ли производить сортировку в обратном порядке.
my_list = [1, 'two', 'a', 4, 'a']
# Попытка упорядочить/сравнить несравнимые типы вызовет исключение
my_list.sort() # TypeError: unorderable types: str()
# Отсортируем «вручную», так чтобы 'а' были в конце.
my_list.sort(key=lambda val: val == 'a') # None
# Фактически мы отсортировали в соответствии
# с маской [False, False, False, True, True]
my_list # ['two', 4, 1, 'a', 'a']

Внимание: Данный метод модифицирует исходный объект на месте, возвращая при этом None .

Хотите выучить Python на практике?

В чём разница между list.clear() и list = []?

Писал только что код, и не мог найти ошибку пока не изменил list.clear() на list = []. вот код на питоне:

def reverse_ascending(items): if len(items) == 2: return list(reversed(items)) stack = [] s = [] count = 1 while count < len(items): if items[count-1] < items[count]: s.insert(0, items[count-1]) elif items[count-1] >items[count]: s.insert(0, items[count-1]) stack.append(s) s = [] else: stack.append([items[count-1]]) if count == len(items)-1: s.insert(0, items[count]) stack.append(s) count += 1 return [i for x in stack for i in x] if len(items) > 1 else items print("Example:") print(reverse_ascending([1, 2, 3, 4, 5])) # These "asserts" are used for self-checking and not for an auto-testing print(reverse_ascending([1, 2, 3, 4, 5])) # [5, 4, 3, 2, 1] print(reverse_ascending([5, 7, 10, 4, 2, 7, 8, 1, 3])) # [10, 7, 5, 4, 8, 7, 2, 3, 1] 

Задание: Создайте и верните новый итерируемый элемент, содержащий те же элементы, что и итерируемые элементы аргумента, но с обратным порядком элементов внутри каждого максимального строго восходящего подсписка. Еле-еле нашёл что если заменить s.clear() на s = [] то в stack добавляется список из s и сохраняется. НО, если я напишу s.clear() то stack тоже удаляется. можете побробывать. Почему очистка списка s затрагивает список stack?

Отслеживать
задан 9 дек 2018 в 14:02
47 1 1 серебряный знак 9 9 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

lis.clear() очищает массив сохраняя ссылку. Если где-то есть другие ссылки на этот же объект, они теперь ссылаются на пустой массив.

list = [] — создание нового объекта. Другие ссылки продолжают ссылаться на старый (заполненный) массив. Манипуляции с list на старый массив не повлияют.

Отслеживать
ответ дан 9 дек 2018 в 14:05
user176262 user176262

  • python-3.x
  • методы
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *