第二章 列表和元组
2.1 序列(索引)
6种:列表、元组、字符串、Unicode、buffer、xrange
列表可以修改,元组字符串不能
x=[‘x1’,’x2,…]
2.2 序列操作
(1)索引
x[n] 访问单个元素,正序0,1,2…,倒序…,-3,-2,-1
‘Hello’[1]=’e’ 字符串索引
(2)分片
x[n1:n2] 访问一定范围的元素,包括n1,不包括n2
x[n1:(nmax+1)]/x[n1:] 访问从n1到最末尾的元素
x[:n2] 访问到n2-1的元素
x[n1:n1:i] 设置步长为i,i<0时表示从右往左提取
(3)相加—连接
(4)乘法 x*n 则x重复n次
(5)成员资格
>>>’i’in x 返回true/false
(6)长度,最大值和最小值—len(),max(),min()
2.3 列表—内容可变(mutable)
(1)list函数
list(‘Hello’)=[‘H’,’e’,’I’,’l’,’o’]
‘’.join([‘H’,’e’,’I’,’l’,’o’])= ‘Hello’
(2)列表操作
赋值 x[n]=xn,n<nmax
删除内容 del x[n],长度减一
分片赋值 x[n1:]=y[n2:],可以不等长
插入新值 x[n1:n1]=y[n]
(3)列表方法—方法是一个与某些对象有紧密联系的函数
对象.方法(参数)
append x.append(xi) 在末尾增加对象
count x.count(xi) 统计元素出现的次数
extend x.extend(y) 在末尾增加另一个序列,相当于x=x+y
index x.index(xi) 找出第一个匹配项的位置
insert x.insert(3,xi) 插入对象,相当于x[3:3]=[xi]
pop x.pop(i) 出栈,移除元素默认最后一个,并返回值
remove x.remoove(xi) 移除匹配的第一个值,不返回值,长度-1
sort x.sort() 排序,按默认顺序,不返回值
sorted x.sorted() 获得已排序的副本,并返回
注:不可以写y=x.sort(),可以写y=x.sorted(),同时注意y=x是表示xy指向同一个列表,修改y的值x也会改变,而y=x[:]则是复制x的副本,两者之间值相同,但无牵扯关系。
高级排序,sort函数有以下参数,key=len,reverse=true/false,cmp,分别表示按长度/正序倒序/按大小排序
2.4 元组—不能修改
(1,2,3)
(42,) #必须加逗号,才能默认为一元元组
()
(42+2,)*3=(42,42,42)
(1) list 函数
转列表为元组:tuple函数
(2) 元组操作 同列表,操作后仍为元组,只可访问、分片
(3) 元组的意义,在映射当中作键、作为内建函数和方法的返回值