在Python中将整数追加到列表的开头

2024-05-08 02:56:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个整数和一个列表。我想创建一个新的列表,以变量开头,以列表结尾。 写a + list时出错。编译器将a作为整数处理,因此我不能使用append或extend。 你会怎么做?


Tags: 列表编译器结尾整数listappendextend
3条回答

请注意,如果您经常尝试执行该操作,特别是在循环中,则列表是错误的数据结构。

列表没有针对前面的修改进行优化,somelist.insert(0, something)是一个O(n) operation

somelist.pop(0)del somelist[0]也是O(n)操作。

要使用的正确数据结构是来自collections模块的^{}。deques公开了一个类似于列表的接口,但是针对两个端点的修改进行了优化。他们有一个在前面插入的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
>>>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]

相关问题 更多 >