У меня есть целое число и список. Я хочу создать новый список из них, начиная с переменной и заканчивая списком.
При написании a + list
я получаю ошибки. Компилятор обрабатывает a
как целое число, поэтому я не могу использовать ни append, ни extend.
Как бы вы могли это сделать?
>>>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)
.
Вставляет элемент в заданную позицию. Первым аргументом является индекс элемента, перед которым нужно вставить, поэтому array.insert(0, x)
вставляет в начало списка, а array.insert(len(array), x)
эквивалентно array.append(x)
. Отрицательные значения рассматриваются как относящиеся к концу массива.
>>> a = 5
>>> li = [1, 2, 3]
>>> [a] + li # Don't use 'list' as variable name.
[5, 1, 2, 3]
Обратите внимание, что если вы пытаетесь сделать эту операцию часто, особенно в циклах, список является неверной структуры данных.
Списки не оптимизирован для модификаций на фронте, и somelist.вставить(0, то)` - это [o операция(Н)] (https://wiki.python.org/moin/TimeComplexity).
somelist.поп(0)
и Дель somelist[0]
также о(n) операций.
Правильная структура данных для использования вочереди
из модуля "коллекции". двусторонней очередью предоставить интерфейс, который похож на тех списков, но оптимизированы для модификаций с обеих конечных точек. Они имеют 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
На основе некоторых (минимальных) показателей с помощью помогите другим модулем` похоже, что аналогичные, если не более высокую производительность, чем принято отвечать
new_lst = [a, *lst]
Как с [а] + список
это позволит создать новый список и не мутировать ЛСТ`.
Если ваше намерение состоит в том, чтобы изменить списке, то используйте ЛСТ.вставить(0, а)
.
Ни один из этих работал для меня. Я реализовал первый элемент, чтобы быть частью ряда (один ряд элементов), и преобразуется и второй элемент для серии, и использовать функцию append.
l = ((pd.Series(<first element>)).append(pd.Series(<list of other elements>))).tolist()
list_1.insert(0,ur_data)
убедитесь, что ur_data имеет тип String
так что если у вас есть данные= инт(5)конвертировать
ur_data = ул.(сведения)`