Добавить целое число в начало списка в Python
у меня есть целое число и список. Я хотел бы сделать новый список из них, начиная с переменных и заканчивая список.
Пишу a + list
Я получаю ошибки. Компилятор обрабатывает a
как целое число, поэтому я не могу использовать append или extend.
Как бы ты это сделал?
5 ответов
>>>var=7
>>>array = [1,2,3,4,5,6]
>>>array.insert(0,var)
>>>array
[7, 1, 2, 3, 4, 5, 6]
как работает:
array.insert(index, value)
вставьте элемент в заданное положение. Первый аргумент-это индекс элемента, перед которым нужно вставить, so array.insert(0, x)
вставки в начале списка и array.insert(len(array), x)
эквивалентно array.append(x)
.Отрицательные значения рассматриваются как относительные к концу массива.
обратите внимание, что если вы пытаетесь сделать эту операцию часто, особенно в циклах, список является неправильной структурой данных.
списки не оптимизированы для модификаций на фронте, и somelist.insert(0, something)
это операция O(n).
somelist.pop(0)
и del somelist[0]
также o (n) операции.
правильная структура данных для использования является deque
С collections
модуль. двусторонней очередью разоблачить интерфейс, подобный списки, но оптимизированы для изменений с обеих конечных точек. У них есть appendleft
метод для вставок на фронте.
демо:
In [1]: lst = [0]*1000
In [2]: timeit -n1000 lst.insert(0, 1)
1000 loops, best of 3: 794 ns per loop
In [3]: from collections import deque
In [4]: deq = deque([0]*1000)
In [5]: timeit -n1000 deq.appendleft(1)
1000 loops, best of 3: 73 ns per loop
новые списки можно сделать, просто добавив списки вместе.
list1 = ['value1','value2','value3']
list2 = ['value0']
newlist=list2+list1
print(newlist)