第2章 列表和元组
数据结构是以某种方式(例如编号)组合起来的数据元素的集合。
python中,最基本的数据结构为序列(sequence)。序列中最常用的两种是:列表和元组。
元组与列表不同在于,元组不可修改。
通用的序列操作:索引、切片、相乘、成员资格检查。
索引(indexing):序列中的所有元素都有编号(从0开始递增),使用负数索引时,从右往左数。
切片(slicing):访问特定范围的元素。使用两个索引,用冒号分隔。
但第二个索引不包括在切片内。
如果切片始于开头 ,可省略第一个索引。
将两个索引都省略,可复制整个序列。[:]
第3个参数可以指定步长(默认1)。[::4]
序列相加:使用+ 拼接序列。 一般而言不能拼接不同类型的序列。
乘法:将序列与数x相乘时,将重复这个序列x次来创建一个新序列。
成员资格:检查特定的值是否在序列中,可使用运算符 in 。 返回bool类型值。
#现在可用in检查特定的字符串是否为另一个字符串的子串。
列表:python的主力
函数list,用字符串创建列表
基本的列表操作:包括对序列的所有操作。
此外,列表是可以修改的。
给元素赋值、删除元素、给切片赋值、使用列表方法。
使用索引给特定元素复制,如:x[1] = 2
删除元素:del, 如 del names[2]
给切片赋值: ,如 name[2:] = list('ar'),借助切片复制插入:
numbers[1:1] = [2,3,4]
借助切片复制删除 numbers[1:4] = []
列表方法:方法是和对象相关的函数。
使用 object.method(arguments)方式调用方法。
1.append 附加(到末尾)
2.clear 清空
3.copy 复制 #常规列表复制如b = a 至少将a 关联到b,b指向的仍然是a的列表。
要指向不同列表,需要使用copy或是切片
4.count 计算指定元素出现次数
5.extend 将多个值附加(到末尾)
#a.extend(b)效果类似于a = a + b
6.index 返回第一次出现的索引
#索引从0开始
7.insert 插入
如numbers.insert(3,'four')将'four'插入索引3的位置。
8.pop 从列表删除一个元素,并返回它
9.remove 删除第一个为指定值的元素
10.reverse 反转
11. sort 排序
12. 高级排序,sort接受两个参数,key和reverse。key为排序的依据,如按长度排序:x.sort(key=len) reverse可以为True或False,决定是否反转
元组:不可修改的序列
用逗号分隔的值是元组。如1,2,3
元组通常使用()扩起
#一个值的元组要在值的后面加, 如:42,
函数tuple 将序列作为参数返回元组。
元组的作用: 用作映射中的键
有些内置函数和方法返回元组。
第2章出现的函数:
len(seq) 返回序列长度
list(seq) 将序列转换为列表max(args) 最大值
mix(args) 最小值
reverse(seq) 反向
sorted(seq) 有序列表
tuple(seq) 将序列转换为元组