📜  Python中列表的内部工作

📅  最后修改于: 2022-05-13 01:54:50.777000             🧑  作者: Mango

Python中列表的内部工作

Python列表简介:
Python列表在内部表示为数组。使用的想法类似于 C++ 中的向量或Java中的 ArrayList 的实现。代价高昂的操作是在开头附近插入和删除项目(因为必须移动所有内容)。如果预分配的空间已满,则在末尾插入也会变得昂贵。
我们可以在Python中创建一个列表,如下所示。
例子:

Python3
list1 = [1, 2, 3, 4]


Python3
list1 = [1, 2, 3, 4]
 
# for printing only one item from a list
print(list1[1])
 
# to print a sequence of item in a list
# we use ':' value before this is starting
# and value after that tells ending of sequence
print(list1[1:4])
 
# accessing through negative index
print(list1[-1])


Python3
# assigning elements to list
list1 =[]
for i in range(0, 11):
     list1.append(i)
 
# accessing elements from a list
for i in range(0, 11):
     print(list1[i])


Python3
list1 =[1, 2, 3, 4]
 
# updating
list1[2]= 5
print(list1)
 
# appending
list1.append(6)
print(list1)
 
# extending
list1.extend([1, 2, 3])
print(list1)


Python3
list1 = [1, 2, 3, 4, 5]
print(list1)
 
# deleting element
del list1[2]
print(list1)


我们可以通过分配的索引访问Python中列表的每个元素。在Python中,列表序列的起始索引为 0,结束索引为(如果有 N 个元素)N-1。

同样如上所示,数组列表也具有从 -N(如果列表中有 N 个元素)到 -1 的负索引。
在Python中查看 List 的元素:
可以通过它们的索引访问列表的各个项目,如下面的代码段所示。

Python3

list1 = [1, 2, 3, 4]
 
# for printing only one item from a list
print(list1[1])
 
# to print a sequence of item in a list
# we use ':' value before this is starting
# and value after that tells ending of sequence
print(list1[1:4])
 
# accessing through negative index
print(list1[-1])

分配和访问数据:
为了创建一个列表,我们需要在方括号“[]”中指定元素,然后给它一个名字。每当您想访问列表元素时,请使用此列表名称和要显示的元素索引。
列表中的每个元素都分配有一个索引,在正索引中,我们有从 0 到列表末尾的索引,在负索引中,我们有从 -N(如果元素是 N)到 -1 的索引。
如上面的示例所示,访问元素的工作是手动的。我们还可以通过循环访问或分配元素。

Python3

# assigning elements to list
list1 =[]
for i in range(0, 11):
     list1.append(i)
 
# accessing elements from a list
for i in range(0, 11):
     print(list1[i])

更新列表:
我们可以将已分配的元素更新到列表中,也可以一次将一个元素附加到您的列表中。即使您可以通过将另一个列表添加到当前列表来扩展您的列表。
上述任务可以按如下方式执行。

Python3

list1 =[1, 2, 3, 4]
 
# updating
list1[2]= 5
print(list1)
 
# appending
list1.append(6)
print(list1)
 
# extending
list1.extend([1, 2, 3])
print(list1)

注意: append() 和 extend() 是Python中用于列表的内置方法。
删除 list 的元素:
我们可以使用 del函数删除列表中的元素。在此您需要指定元素的位置,即元素的索引,该元素将从列表中删除并更新索引。

在上面显示的图像中,索引 2 中的元素 3 已被删除,并且在该索引已更新之后。

Python3

list1 = [1, 2, 3, 4, 5]
print(list1)
 
# deleting element
del list1[2]
print(list1)

操作的时间复杂度

OperationAverage CaseAmortized Worst Case
CopyO(n)O(n)
Append[1]O(1)O(1)
Pop lastO(1)O(1)
Pop intermediateO(k)O(k)
InsertO(n)O(n)
Get ItemO(1)O(1)
Set ItemO(1)O(1)
Delete ItemO(n)O(n)
IterationO(n)O(n)
Get SliceO(k)O(k)
Del SliceO(n)O(n)
Set SliceO(k+n)O(k+n)
Extend[1]O(k)O(k)
SortO(n log n)O(n log n)
MultiplyO(nk)O(nk)
x in sO(n)O(n)
min(s), max(s)O(n)O(n)
Get LengthO(1)O(1)

资料来源: Python维基
Python列表及其操作。