Добавить значение элемента в конец списка
Операция позволяет добавить в конец последовательности новый объект x . Метод sequence.append() производит добавление элемента x в конец последовательности sequence .
Операция добавления в конец последовательности объекта x эквивалентна выполнению выражения sequence[len(sequence):len(sequence)] = [x]
Эта операция поддерживаются изменяемыми типами последовательностей. Дополнительно смотрите как можно добавить элемент в последовательность по индексу.
Для добавления нескольких значений в конец списка смотрите метод list.extend()
Примеры добавления одного значения в конец списка.
>>> x = [3, 6, 9] >>> x.append(150) >>> x # [3, 6, 9, 150] >>> x.append([150, 200]) >>> x # [3, 6, 9, 150, [150, 200]] >>> x.append('foo') >>> x # [3, 6, 9, 150, [150, 200], 'foo'] >>> x.append(('one', 'two')) >>> x # [3, 6, 9, 150, [150, 200], 'foo', ('one', 'two')]
Альтернативная операция добавления одного значения в конец списка.
# добавление одного элемента в конец списка # альтернатива операции x.append(1.3) >>> x = [1, 1.1, 1.2] >>> x += [1.3] >>> x # [1, 1.1, 1.2, 1.3] # БУДЬТЕ ВНИМАТЕЛЬНЫ. нужно # добавлять список из одного элемента >>> x += 1.4 # Traceback (most recent call last): # File "", line 1, in # TypeError: 'float' object is not iterable # БУДЬТЕ ОСТОРОЖНЫ. # строка представляет из себя кортеж >>> x += '1.4' >>> x # [1, 1.1, 1.2, 1.3, '1', '.', '4'] # что таким способом добавить строку # оберните ее в квадратные скобки >>> x += ['123'] >>> x # [1, 1.1, 1.2, 1.3, '1', '.', '4', '123']
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Изменение/замена элемента списка по индексу
- Изменение части списка операцией среза
- Изменение списка срезом c заданным шагом
- Удаление части списка операцией среза
- Удаление части списка по срезу с заданным шагом
- Метод list.append(), добавляет значение в конец списка
- Метод list.clear(), очищает список
- Метод list.copy(), копия списка
- Метод list.extend(), расширяет список другой последовательностью
- Расширение списка его содержимым
- Метод list.insert(), вставить элемент по индексу
- Метод list.pop(), получение с удалением элемент списка
- Метод list.remove(), удаление элемента списка по значению
- Метод list.reverse(), разворачивает элементы списка
- Удаление элемента списка по индексу
- Удаление дубликатов из списка Python с сохранением очередности
Методы списка
В Python у списков имеется одиннадцать методов. Условно разделим их на группы:
- увеличивающие количество элементов — append , extend , insert
- уменьшающие количество элементов — clear , pop , remove
- изменяющие порядок элементов — reverse , sort
- методы «поиска» — index , count
- копирование списка — copy
Методы append и extend производят добавление в конец списка. Разница между ними заключается в том, что с помощью append можно добавить только один элемент, в то время extend позволяет расширить список сразу на несколько. При этом оба метода принимают один аргумент. В случае extend это должна быть итерируемая последовательность (кортеж, список, строка и другое), каждый элемент которой станет отдельным элементом списка.
>>> lst = ['a', 45, 89, 'who'] >>> lst.append(67) >>> lst ['a', 45, 89, 'who', 67]
>>> b [1, 2, 3] >>> c = (9, 10) >>> b.extend(c) >>> b [1, 2, 3, 9, 10] >>> b.extend("abc") >>> b [1, 2, 3, 9, 10, 'a', 'b', 'c'] >>> b.extend([12, 19]) >>> b [1, 2, 3, 9, 10, 'a', 'b', 'c', 12, 19]
Если требуется вставить элемент в произвольное место списка, используется метод insert . Он принимает два аргумента: сначала индекс, потом значение. Вставка элемента происходит перед элементом, который до этого занимал указанную позицию.
>>> lst.insert(0,10) >>> lst [10, 'a', 45, 89, 'who', 67, 'a1', (1, 2, 3)] >>> lst.insert(len(lst),10) >>> lst [10, 'a', 45, 89, 'who', 67, 'a1', (1, 2, 3), 10] >>> lst.insert(3, 10) >>> lst [10, 'a', 45, 10, 89, 'who', 67, 'a1', (1, 2, 3), 10]
Для удаления из списка одного элемента используют методы remove и pop . Метод remove принимает значение удаляемого элемента, и удаляет первое его вхождение. Если элемента нет в списке, возникает исключение ValueError . Метод pop удаляет элемент по индексу. При этом возвращает удаленное из списка значение в программу. Вызов pop() без аргументов удаляет и возвращает последний элемент. Метод pop генерирует исключение IndexError , если указан индекс за пределами диапазона индексов списка.
lst = [4, 3, 5, 1, 8, 1] d = int(input()) try: lst.remove(d) except ValueError: print('No the item') print(lst)
1 [4, 3, 5, 8, 1]
2 No the item [4, 3, 5, 1, 8, 1]
lst = ['a', 'f', 'b', 'x', 'y', 'k'] i = int(input()) try: value = lst.pop(i) except IndexError: value = 'Index Error' print(value)
10 Index Error
Метод clear удаляет все элементы из списка.
>>> a = [1, 2] >>> a.clear() >>> a []
Метод reverse изменяет порядок элементов на обратный. Метод переворачивает список на месте, то есть тот, к которому применяется.
>>> lst ['a', 10, 89, 'who', 67, 'a1', (1, 2, 3), 10] >>> lst.reverse() >>> lst [10, (1, 2, 3), 'a1', 67, 'who', 89, 10, 'a']
Метод sort выполняет сортировку списка на месте (список изменяется, а не возвращается новый). Если sort() вызывается без аргументов, сортировка происходит по возрастанию. Для сортировки по убыванию следует именованному параметру reverse присвоить True .
>>> li = [4, 1, 9, 5] >>> li.sort() >>> li [1, 4, 5, 9]
>>> st = [4, 2, 7, 5] >>> st.sort(reverse=True) >>> st [7, 5, 4, 2]
Для более сложных сортировок используется параметр key , которому присваивается функция, выполняющая действия над каждым элементом списка. Сортировка происходит на основе вернувшихся значений. Подробнее об этом в этой статье.
>>> n = [-4, 3, 9, -5, 2] >>> n.sort(key=lambda i: abs(i)) >>> n [2, 3, -4, -5, 9]
Метод count считает, сколько раз в списке встречается переданный аргумент.
>>> a = [1, 0, 1, 1, 0] >>> a.count(1) 3
Метод index возвращает индекс указанного элемента. Если таких значений несколько, метод вернет индекс только первого. Если таких элементов нет, генерируется исключение. Вторым и третьим аргументом можно указать срез для поиска.
>>> a = ['a', 'c', 'e', 'a', 'b'] >>> a.index('a') 0 >>> a.index('a', 2) 3 >>> a.index('a', 2, 4) 3 >>> a.index('a', 2, 3) Traceback (most recent call last): File "", line 1, in ValueError: 'a' is not in list
Метод copy создает поверхностную копию списка. Так при наличии вложенных списков копируются не они сами, а ссылки на них. В результате изменение вложенных списков через список-оригинал будет видно также в списке-копии.
>>> a = [1, 2] >>> b = a.copy() >>> b.append(3) >>> a [1, 2] >>> b [1, 2, 3]
>>> c = [1, 2, [3, 4]] >>> d = c.copy() >>> d.append(5) >>> c[2].append(6) >>> c [1, 2, [3, 4, 6]] >>> d [1, 2, [3, 4, 6], 5]
Списки (list). Функции и методы списков

Сегодня я расскажу о таком типе данных, как списки, операциях над ними и методах, о генераторах списков и о применении списков.
Что такое списки?
Списки в Python — упорядоченные изменяемые коллекции объектов произвольных типов (почти как массив, но типы могут отличаться).
Чтобы использовать списки, их нужно создать. Создать список можно несколькими способами. Например, можно обработать любой итерируемый объект (например, строку) встроенной функцией list:
Список можно создать и при помощи литерала:
Как видно из примера, список может содержать любое количество любых объектов (в том числе и вложенные списки), или не содержать ничего.
И еще один способ создать список — это генераторы списков. Генератор списков — способ построить новый список, применяя выражение к каждому элементу последовательности. Генераторы списков очень похожи на цикл for.
Возможна и более сложная конструкция генератора списков:
Но в сложных случаях лучше пользоваться обычным циклом for для генерации списков.
Функции и методы списков
Создать создали, теперь нужно со списком что-то делать. Для списков доступны основные встроенные функции, а также методы списков.
Таблица «методы списков»
| Метод | Что делает |
|---|---|
| list.append(x) | Добавляет элемент в конец списка |
| list.extend(L) | Расширяет список list, добавляя в конец все элементы списка L |
| list.insert(i, x) | Вставляет на i-ый элемент значение x |
| list.remove(x) | Удаляет первый элемент в списке, имеющий значение x. ValueError, если такого элемента не существует |
| list.pop([i]) | Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент |
| list.index(x, [start [, end]]) | Возвращает положение первого элемента со значением x (при этом поиск ведется от start до end) |
| list.count(x) | Возвращает количество элементов со значением x |
| list.sort([key=функция]) | Сортирует список на основе функции |
| list.reverse() | Разворачивает список |
| list.copy() | Поверхностная копия списка |
| list.clear() | Очищает список |
Нужно отметить, что методы списков, в отличие от строковых методов, изменяют сам список, а потому результат выполнения не нужно записывать в эту переменную.
И, напоследок, примеры работы со списками:
Изредка, для увеличения производительности, списки заменяют гораздо менее гибкими массивами (хотя в таких случаях обычно используют сторонние библиотеки, например NumPy).
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Разница между методами списка в Python: append и extend
Часто при работе с языком программирования Python возникает необходимость добавить элементы в список. Для этого в Python предусмотрены два метода: append() и extend() . Они выполняют похожую функцию, но существует важная разница в их использовании.
Рассмотрим пример. Предположим, есть список list1 = [1, 2, 3] .
Метод append()
Метод append() используется для добавления одного элемента в конец списка. Например:
list1.append(4)
Результат будет следующим: list1 теперь будет выглядеть так: [1, 2, 3, 4] .
Но что, если нужно добавить не один элемент, а целый список? Допустим, есть еще один список list2 = [5, 6, 7] . Если использовать метод append() , то список list2 будет добавлен как один элемент:
list1.append(list2)
Теперь list1 выглядит так: [1, 2, 3, 4, [5, 6, 7]] . Как видно, список list2 был добавлен в list1 как один элемент, то есть как подсписок.
Метод extend()
Метод extend() , в отличие от append() , добавляет каждый элемент из передаваемого ему списка в конец исходного списка.
Вернемся к нашему примеру. Если взять тот же список list1 = [1, 2, 3] и использовать метод extend() для добавления list2 :
list1.extend(list2)
Теперь список list1 выглядит так: [1, 2, 3, 5, 6, 7] .
Как видно, все элементы из list2 были добавлены в list1 по отдельности, а не как один подсписок.
Вывод: метод append() добавляет аргумент в список как один элемент, в то время как extend() добавляет каждый элемент аргумента в список по отдельности.