На этом шаге мы рассмотрим различные способы выполнения этих операций.
Для добавления и удаления элементов списка используются следующие методы:
>>> arr = [1, 2, 3] >>> arr.append(4); arr # Добавляем число [1, 2, 3, 4] >>> arr.append([5, 6]); arr # Добавляем список [1, 2, 3, 4, [5, 6]] >>> arr.append((7, 8)); arr # Добавляем кортеж [1, 2, 3, 4, [5, 6], (7, 8)]
>>> arr = [1, 2, 3] >>> arr.extend([4, 5, 6]) # Добавляем список >>> arr.extend((7, 8, 9)) # Добавляем кортеж >>> arr.extend("abc") # Добавляем буквы из строки >>> arr [1, 2, 3, 4, 5, 6, 7, 8, 9, 'а', 'b', 'с']
Добавить несколько элементов можно с помощью операции конкатенации или оператора +=:
>>> arr = [1, 2, 3] >>> arr + [4, 5, 6] # Возвращает новый список [1, 2, 3, 4, 5, 6] >>> arr += [4, 5, 6] # Изменяет текущий список >>> arr [1, 2, 3, 4, 5, 6]
Кроме того, можно воспользоваться операцией присваивания значения срезу:
>>> arr = [1, 2, 3] >>> arr[len(arr):] = [4, 5, 6] # Изменяет текущий список >>> arr [1, 2, 3, 4, 5, 6]
>>> arr = [1, 2, 3] >>> arr.insert(0, 0); arr # Вставляем 0 в начало списка [0, 1, 2, 3] >>> arr.insert(-1, 20); arr # Можно указать отрицательные числа [0, 1, 2, 20, 3] >>> arr.insert(2, 100); arr # Вставляем 100 в позицию 2 [0, 1, 100, 2, 20, 3] >>> arr.insert(10, [4, 5]); arr # Добавляем список [0, 1, 100, 2, 20, 3, [4, 5]]
Метод insert () позволяет добавить только один объект. Чтобы добавить несколько объектов, можно воспользоваться операцией присваивания значения срезу. Добавим несколько элементов в начало списка:
>>> arr = [1, 2, 3]
>>> arr[:0] = [-2, -1, 0]
>>> arr
[-2, -1, 0, 1, 2, 3]
>>> arr = [1, 2, 3, 4, 5] >>> arr.pop() # Удаляем последний элемент списка 5 >>> arr # Список изменился [1, 2, 3, 4] >>> arr.pор(0) # Удаляем первый элемент списка 1 >>> arr # Список изменился [2, 3, 4]
Удалить элемент списка позволяет также оператор del:
>>> arr = [1, 2, 3, 4, 5] >>> del arr[4]; arr # Удаляем последний элемент списка [1, 2, 3, 4] >>> del arr[:2]; arr # Удаляем первый и второй элементы [3, 4]
>>> arr = [1, 2, 3, 1, 1] >>> arr.remove(1) # Удаляет только первый элемент >>> arr [2, 3, 1, 1] >>> arr. remove(5) # Такого элемента нет Traceback (most recent call last): File "<pysheli#3>", line 1, in <module> arr.remove (5) # Такого элемента нет ValueError: list.remove(x): x not in list
>>> arr = [1, 2, 3, 1, 1]
>>> arr.clear()
>>> arr
[]
Если необходимо удалить все повторяющиеся элементы списка, то можно преобразовать список во множество, а затем множество обратно преобразовать в список. Обратите внимание на то, что список должен содержать только неизменяемые объекты (например, числа, строки или кортежи). В противном случае возбуждается исключение TypeError. Пример:
>>> arr = [1, 2, 3, 1, 1, 2, 2, 3, 3] >>> s = set(arr) # Преобразуем список во множество >>> s {1, 2, 3} >>> arr = list(s) # Преобразуем множество в список >>> arr # Все повторы были удалены [1, 2, 3]
На следующем шаге мы рассмотрим поиск элемента в списке.