列表
与字符串不同:列表可以保护任何种类的对象:数字、字符串甚至其他列表。列表是可变对象,支持在原处修改的操作,可以通过指定的偏移值和分片、列表方法调用、删除语句等方法来实现。
主要属性:
(1).任意对象的有序集合
(2).通过偏移读取
(3).可变长度、异构(可以包含任何类型的对象不仅仅是包含有单个字符的字符串)以及任意嵌套
(4).属于可变序列的分类
(5).对象引用数组
常见操作:
实际应用中的列表
基本列表操作
列表迭代和解析
索引、分片和矩阵
对列表进行索引的结果就是你指定的偏移处的对象,而对列表进行分片时往往返回一个新的列表:
矩阵(多维数组)的访问:
原处修改列表
与字符串不同,它支持原处改变对象的操作,这样就不会强迫你建立一个新的拷贝。在原处修改一个对象时,可能同时会影响一个以上指向它的引用。
(1).索引与分片的赋值
上述的分片操作可以分成两步来理解:
1.删除。删除等号左边指定的分片
2.插入。将包含在等号右边对象中的片段插入旧分片被删除的位置。
(2).列表方法调用
上述中的append和sort函数都属于原地修改列表
L.append(X)与L+[X]虽然结果类似,但不同的是,前者会原地修改L,而后者会生成新的列表
针对sort排序,可以通过key参数指出了一个单个参数的函数,它返回在排序中使用的值,reverse参数允许排序按照降序而不是升序进行:
注意:要当心append和sort原处修改相关的列表对象,而结果并没有返回列表(从技术上讲,两者返回的值皆为None)如果编辑类似L=L.append(X)的语句,将不会得到修改后的值(实际上,会失去整个列表的引用)
排序也在最近的Python中可以作为内置函数使用了,它可以排序任何集合(不只是列表)并且针对结果返回一个新的列表(而不是原处修改):
extend()和pop方法分别能够在末端插入多个元素、删除一个元素,也有reversed内置函数,像sorted一样工作,但是它必须包装在一个list调用中,因为它是一个迭代器
其他操作: