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)
操作的时间复杂度Operation Average Case Amortized Worst Case Copy O(n) O(n) Append[1] O(1) O(1) Pop last O(1) O(1) Pop intermediate O(k) O(k) Insert O(n) O(n) Get Item O(1) O(1) Set Item O(1) O(1) Delete Item O(n) O(n) Iteration O(n) O(n) Get Slice O(k) O(k) Del Slice O(n) O(n) Set Slice O(k+n) O(k+n) Extend[1] O(k) O(k) Sort O(n log n) O(n log n) Multiply O(nk) O(nk) x in s O(n) O(n) min(s), max(s) O(n) O(n) Get Length O(1) O(1)
资料来源: Python维基
Python列表及其操作。