python course for me
November 6, 2023

Stepik: Методы списков

Метод append() - добавляет новый элемент в конец списка. Меняет сам искомый список.
Можно добавлять любые объекты, но только по одному.

a = [1, -54, 3, 23, 43, -45, 0]
a.append(100)
print(a)
# Вывод: [1, -54, 3, 23, 43, -45, 0, 100]

a = [1, -54, 3, 23, 43, -45, 0]
a.append(True)
a.append([1, 2, 3])
print(a)
# Вывод: [1, -54, 3, 23, 43, -45, 0, True, [1, 2, 3]]

Метод insert() - позволяет вставлять в список в определённую позицию определённый объект

a = [1, -54, 3, 23, 43, -45, 0]
# вставим между 3 и 23 число (-1000), то есть на место 23
a.insert(3, -1000)
print(a)
# Вывод: [1, -54, 3, -1000, 23, 43, -45, 0]

Для удаления элемента существует несколько методов

Метод для удаления remove() - позволяет удалять по значению элемента

a = [1, -54, 3, 23, 43, -45, 0, True, [1, 2, 3]]
a.remove(True)
print(a)
# Вывод: [-54, 3, 23, 43, -45, 0, True, [1, 2, 3]]
# True осталось, но первая 1 отсутвует.
# Происходит это потому, что булевые значения приводяться
# к числовым значениям (True = 1, False = 0).
a.remove(True)
print(a)
# Вывод: [-54, 3, 23, 43, -45, 0, [1, 2, 3]]

Если с помощью метода remove() удалять объект, которого нет в списке, то он выдаст исключение

a = [1, -54, 3, 23, 43, -45, 0, True, [1, 2, 3]]
a.remove('hello')
print(a)
# Вывод: ValueError: list.remove(x): x not in list

Метод для удаления pop(). Если записывать этот метод без аргумента, то происходит удаления последнего элемента списка.
Так же этот метод удаляет возвращаемый элемент

a = [1, -54, 3, 23, 43, -45, 0]
p = a.pop()
print(a)
# Вывод: [1, -54, 3, 23, 43, -45]
print(p)
# Вывод: 0

Методом pop() можно удалять любой элемент по его индексу

a = [1, -54, 3, 23, 43, -45, 0]
p = a.pop(3) # удаляем 23 с индексом 3
print(a)
# Вывод: [1, -54, 3, 43, -45, 0]
print(p)
# Вывод: 23
print(type(p))
# Вывод: <class 'int'>

Метод clear() полностью удаляет все элементы из списка (очищает список).

a = [1, -54, 3, 23, 43, -45, 0]
a.clear()
print(a)
# Вывод: []

Метод copy() позволяет создавать копию данного списка

a = [1, -54, 3, 23, 43, -45, 0]
c = a.copy()
print(id(a), id(c))
# Вывод: 1771116378304 1771116378880

# НАПОМИНАНИЕ: КОПИИ МОЖНО СОЗДАВАТЬ И ТАКИМ СПОСОБОМ
s = a[:]
f = list(a)
print(id(a), id(c), id(s), id(f))
# Вывод: 1771116378304 1771116378880 1771117880000 1771117930496

Метод count() позволяет найти число элементов с указанным значением

a = [1, -54, 3, 23, 43, -45, 0]
print(a.count(1))
# Вывод: 1
a.append(1)
print(a.count(1))
# Вывод: 2

Метод index() - позволяет определять индекс определённого значения
Возвращает индекс первого найденного элемента

a = [1, -54, 3, 23, 43, -45, 3, 0]
print(a.index(3))
# Вывод: 2 - то есть метод нашел первую тройку с индексом 2 и вывел. Остальные не ищет

Чтобы найти вторую тройку, нужно указать методу еще один аргумент - стартовое значение, откуда ищем

a = [1, -54, 3, 23, 43, -45, 3, 0]
print(a.index(3, 3))
# Вывод: 6 - тройка с индексом 6

Метод reverse() -меняет порядок следования на обратный

a = [1, -54, 3, 23, 43, -45, 3, 0]
a.reverse()
print(a)
# Вывод: [0, 3, -45, 43, 23, 3, -54, 1]

Метод sort() - выполняет сортировку значений по возрастанию

a = [1, -54, 3, 23, 43, -45, 3, 0]
a.sort()
print(a)
# Вывод: [-54, -45, 0, 1, 3, 3, 23, 43]

Для того, чтобы сделать сортировку по убыванию reverse = True

a = [1, -54, 3, 23, 43, -45, 3, 0]
a.sort(reverse = True)
print(a)
# Вывод: [43, 23, 3, 3, 1, 0, -45, -54]

ТЕКСТ ЛЕКЦИИ