Python列表简介: Python列表 在内部表示为数组。使用的想法与 C++中矢量的实现 或者Java中的ArrayList。代价高昂的操作是在接近开始时插入和删除项目(因为所有东西都必须移动)。如果预分配的空间已满,则在末尾插入也会增加成本。 我们可以用python创建一个列表,如下所示。 例子:
Python3
list1 = [ 1 , 2 , 3 , 4 ] |
我们可以通过指定的索引访问python中列表的每个元素。在python中,列表序列的起始索引是0,结束索引是(如果有N个元素)N-1。
如上所示,数组列表也有从-N(如果列表中有N个元素)到-1的负索引。 在Python中查看列表的元素: 列表中的各个项目可以通过它们的索引进行访问,如下代码段所示。
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中用于列表的内置方法。 删除列表中的元素: 我们可以利用del函数删除列表中的元素。在这种情况下,您需要指定元素的位置,该元素是该元素的索引,该元素将从列表中删除,索引将被更新。
在上图中,索引2中的元素3已被删除,并且在该索引更新之后。
Python3
list1 = [ 1 , 2 , 3 , 4 , 5 ] print (list1) # deleting element del list1[ 2 ] print (list1) |
操作的时间复杂性
活动 | 普通病例 | 摊销 最坏的情况 |
复制 | O(n) | O(n) |
附加[1] | O(1) | O(1) |
最后一击 | O(1) | O(1) |
波普中间体 | O(k) | O(k) |
插入 | O(n) | O(n) |
获取项目 | O(1) | O(1) |
固定项目 | O(1) | O(1) |
删除项目 | O(n) | O(n) |
迭代 | O(n) | O(n) |
切块 | O(k) | O(k) |
Del Slice | O(n) | O(n) |
设定切片 | O(k+n) | O(k+n) |
扩展[1] | O(k) | O(k) |
分类 | O(n日志n) | O(n日志n) |
乘 | O(nk) | O(nk) |
x英寸s | O(n) | O(n) |
最小值,最大值 | O(n) | O(n) |
获得长度 | O(1) | O(1) |
资料来源: Python维基 Python列表及其操作。