Как добавить элемент в произвольное место списка, не используя метод insert, срезы
Здравствуйте, подскажите пожалуйста, как можно добавить элемент в произвольное место списка, не используя метод insert, срезы, другие
списки. Можно использовать append 1 раз.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как добавить строку в произвольное место табличной части?
Как можно добавить строку между 2 и 3 строки в цикле перебора строк
Удалить из списка очереди первый элемент, добавить новый элемент на последнее место
1.Создать односвязный список типа стек. Скопировать его в другой список типа очередь. Удалить из.
Как удалить/добавить элемент списка используя LINQ?
using System; using System.Collections; using System.Collections.Generic; using System.Linq;.
Добавить элемент в определенное место списка
Всем привет! Совсем запутался.. Есть список ArrayList.. В нем есть элементы 1,2,3,5,6. Как мне.
![]()
7279 / 4102 / 1794
Регистрация: 27.03.2020
Сообщений: 6,926
nikitalystsev,
1 2 3 4 5 6 7 8 9 10
n = 10 a = list(range(n)) print(a) k = 5 # произвольное место d = 1234 for i in range(k, n): a[i], d = d, a[i] a.append(d) print(a)
Методы списка
В 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]
Перемещение элементов в списке пример
Есть список a = [1, 2, 3] . Допустим мне нужно переместить 1 элемент на место 2, а 2 на 1: a = [2, 1, 3] .Как это сделать?
Отслеживать
10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака
задан 17 фев 2020 в 15:09
Артём Крылов Артём Крылов
35 3 3 бронзовых знака
Если вам все варианты надо, смотрите в сторону permutations .
17 фев 2020 в 17:35
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
a = [1, 2, 3] a[0], a[1] = a[1], a[0] print(a)
Отслеживать
ответ дан 17 фев 2020 в 15:12
USERNAME GOES HERE USERNAME GOES HERE
10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака
- python
- list
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как добавить элемент в список в Python – 3 метода
Python предоставляет встроенные методы для добавления или присоединения элементов в список. Мы также можем добавить список в другой список. Методы как добавить элемент в список в Python приведены ниже:
- append(elmt) – добавляет значение в конец списка;
- insert(index, elmt) – вставляет значение в указанную позицию индекса;
- extends(iterable) – расширяет список, добавляя итерируемый объект.
Давайте разберемся с этими методами на примерах.
1. append(elmt)
Эта функция используется для добавления элемента в конец списка.
names = ["Joseph", "Peter", "Cook", "Tim"] print('Current names List is:', names) new_name = input("Please enter a name:n") names.append(new_name) # Using the append() function print('Updated name List is:', names)
Current names List is: ['Joseph', 'Peter', 'Cook', 'Tim'] Please enter a name: Devansh Updated name List is: ['Joseph', 'Peter', 'Cook', 'Tim', 'Devansh']
2. insert(index, elmt)
Функция insert() добавляет элементы в заданную позицию индекса. Это полезно, когда мы хотим вставить элемент в определенное место.
list1 = [10, 20, 30, 40, 50] print('Current Numbers List: ', list1) el = list1.insert(3, 77) print("The new list is: ",list1) n = int(input("enter a number to add to list:n")) index = int(input('enter the index to add the number:n')) list1.insert(index, n) print('Updated Numbers List:', list1)
Current Numbers List: [10, 20, 30, 40, 50] The new list is: [10, 20, 30, 77, 40, 50] enter a number to add to list: 45 enter the index to add the number: 1 Updated Numbers List: [10, 45, 20, 30, 77, 40, 50]
3. extend(iterable)
Функция extends() используется для добавления итерируемых элементов в список, итерируемый объект принимается в качестве аргумента. Ниже приведен пример добавления повторяемого элемента.
list1 = [10,20,30] list1.extend(["52.10", "43.12" ]) # extending list elements print(list1) list1.extend((40, 30)) # extending tuple elements print(list1) list1.extend("Apple") # extending string elements print(list1)
[10, 20, 30, '52.10', '43.12'] [10, 20, 30, '52.10', '43.12', 40, 30] [10, 20, 30, '52.10', '43.12', 40, 30, 'A', 'p', 'p', 'l', 'e']
