1.列表具有的属性
python列表是:
1.任意对象的有序序列
2.通过偏移读取
3.可变长度、异构及任意嵌套
可以包含任意对象(异构)
4.属于可变序列
5.是对象引用 的数组
Python列表包含了0个或多个其他对象的引用,每当用到引用,Python总是将这个引用指向一个对象,所以程序只需处理对象的操作。当把一个对象赋给一个数据结构元素或变量名时,Python总是会储存对象的引用,而不是对象的一个拷贝(除非明确要求保存拷贝) (深浅拷贝)
2.列表的修改
2.1分片
分片赋值是一次性替换整个片段或“栏”。因为被赋值的序列长度不一定要与被赋值的分片长度相匹配,所以分片赋值能够用来替换(覆盖)、增长(插入)、缩短(删除)主列表。
>>> L = [1,2,3]
>>> L[1:2] = [66,88]
>>> L
[1, 66, 88, 3]
#ps:空列表赋值给索引,是在指定的位置储存清空引用,而不是删除
2.2apend和sort方法
append和sort方法实在原处修改相关的列表对象,而结果并没有返回列表(从技术上将,两者皆返回None)。如果编辑类似L = L.append(X)的语句,将不会得到L修改后的值(实际上会失去整个列表的引用)。
内置函数sorted()会返回一个新的列表(原列表不会改变)。
>>> L = [1,2,3]
>>> L = L.append(12)
>>> print(L)
None
>>> L =['a','B','C']
>>> sorted(L,reverse = True)
['a', 'C', 'B']
>>> L
['a', 'B', 'C']
2.3pop
append与pop联用可以形成后进先出的堆栈结构
>>> L =['a','B','C']
>>> L.append('D')
>>> L.pop() #可以指定索引
'D'
>>> L
['a', 'B', 'C']
2.4 del语句
del既可以在原处删除某项,也可以删除分片。
>>> L =[1,2,3,4,5]
>>> del L[0]
>>> L
[2, 3, 4, 5]
>>> del L[1:3]
>>> L
[2, 5]