上节讲述了序列,这节讲述列表、元组。
列表和元组的主要不同在于列表是可以修改的,而元组不可以。
序列、列表、元组
一、列表
(1)函数 list
可以使用字符串来创建列表。
要将字符列表转换为字符串使用join
示例代码
(2)基本的列表操作
--修改列表:给元素赋值
使用普通赋值语句
--删除元素
只需使用 del 语句即可
--给切片赋值
通过使用切片赋值,可将切片替换为长度与其不同的序列。
使用切片赋值还可在不替换原有元素的情况下插入新元素。
(3)列表方法
--append
方法 append 用于将一个对象附加到列表末尾
它不会返回修改后的新列表,而是直接修改旧列表
--clear
方法 clear 就地清空列表的内容。
这类似于切片赋值语句 lst[:] = []。
--copy
常规复制只是将另一个名称关联到列表。
要让 a 和 b 指向不同的列表,就必须将 b 关联到 a 的副本。
这类似于使用 a[:] 或 list(a) ,它们也都复制 a 。
--count
方法 count 计算指定的元素在列表中出现了多少次。
--extend
方法 extend 让你能够同时将多个值附加到列表末尾。
这可能看起来类似于拼接,但存在一个重要差别,那就是将修改被扩展的序列。
拼接操作并非就地执行的,即它不会修改原来的列表。要获得与 extend 相同的效果,可将列表赋给切片。
--index
方法 index 在列表中查找指定值第一次出现的索引。
--insert
方法 insert 用于将一个对象插入列表。
--pop
方法 pop 从列表中删除一个元素(末尾为最后一个元素),并返回这一元素。
Python没有提供 push ,但可使用 append 来替代。
--remove
方法 remove 用于删除第一个为指定值的元素。
remove 是就地修改且不返回值的方法之一。不同于 pop 的是,它修改列表,但不返回任何值。
--reverse
方法 reverse 按相反的顺序排列列表中的元素。
注意到 reverse 修改列表,但不返回任何值(与 remove 和 sort 等方法一样)。
如果要按相反的顺序迭代序列,可使用函数 reversed 。这个函数不返回列表,而是返回一个迭代器。你可使用 list 将返回的对象转换为列表。
--sort
方法 sort 用于对列表就地排序。就地排序意味着对原来的列表进行修改,使其元素按顺序排列,而不是返回排序后的列表的副本。
为获取排序后的列表的副本,另一种方式是使用函数 sorted 。这个函数可用于任何序列,但总是返回一个列表。
如果要将元素按相反的顺序排列,可先使用 sort (或 sorted ),再调用方法 reverse ,也可使用参数reverse。
--高级排序
方法 sort 接受两个可选参数: key 和 reverse 。
要根据长度对元素进行排序,可将参数 key 设置为函数 len 。
对于另一个关键字参数 reverse ,只需将其指定为一个真值( True 或 False ),以指出是否要按相反的顺序对列表进行排序
函数 sorted 也接受参数 key 和 reverse 。在很多情况下,将参数 key 设置为一个自定义函数很有用。
示例代码
完整代码请私信回复“Python编程笔记2”
二、元组
与列表一样,元组也是序列,唯一的差别在于元组是不能修改的。
元组语法很简单,只要将一些值用逗号分隔,就能自动创建一个元组。
元组还可用圆括号括起。
空元组用两个不包含任何内容的圆括号表示。
一个值元组,也必须在它后面加上逗号。
元组的切片也是元组,就像列表的切片也是列表一样。
它们用作映射中的键(以及集合的成员),而列表不行。
有些内置函数和方法返回元组。
--tuple
tuple 的工作原理与 list 很像:它将一个序列作为参数,并将其转换为元组 。如果参数已经是元组,就原封不动地返回它。
示例代码
网友评论