一、序列分类
1、可变序列:list
2、不可变序列:tuple,range
二、序列公共操作方法
1、操作和返回值
其中s和t代表同类型序列;n,i,j,k为整数;x为任意类型。
序号
操作
结果
1
x in s
若序列s中包含x元素则返回True,否则返回False
2
x not in s
若序列s中不包含x元素则返回True,否则返回False
3
s + t
s和t拼接在一起
4
s*n(或n*s)
将s重复n次
5
s[i]
s中下标为i的元素(下标从0开始)
6
s[i:j]
s中下标从i到j-1的元素集合(下标从0开始)
7
s[i:j:k]
s中下标从i到j-1且间隔为K的元素集合(下标从0开始)
8
len(s)
s中元素个数
9
min(s)
s中最小的元素
10
max(s)
s中最大的元素
11
s.index(x[,i[,j]])
s中首次出现x的下标(i,j为下标范围限制)
12
s.count(x)
s中x的总个数
2、实例
2.1、x in s
s = [1,2,[3,4],'g']
x= 'g'a= [3,4]
b= 5
print(x in s,a in s,b in s)
Ture Ture False
2.2、x not in s
s = [1,2,[3,4],'g']
x= 'g'a= [3,4]
b= 5
print(x in s,a in s,b not in s)
True True True
2.3、s + t
s = [1,2,[3,4],'g']
t= ['5',6]
w= s +tprint(w)
[1, 2, [3, 4], 'g', '5', 6]
当t与s类型不一致时会抛出TypeError异常
s = range(2,9)
t= [1,3]
w= s +tprint(w)
Traceback (most recent call last):
File"E:/pythoncode/新建文件夹/sf.py", line 3, in w= s +t
TypeError: unsupported operand type(s)for +: 'range' and 'list'
2.4、s*n(或n*s)
s = ['a',3,4]
n = 3
w= s*n
print(w)
['a', 3, 4, 'a', 3, 4, 'a', 3, 4]
当n小于或等于0时,s*n是空序列
s = ('a',3,4)
n= -1w= s*nprint(w)
()
2.5、s[i]
s = ['a',3,4]print(s[0],s[2])
a 4
当i小于0时,表示下标为len(s)+i的元素,即倒数第|i|个
s = ('a',3,4)print(s[-1],s[-3])
4 a
2.6、s[i:j]
s = ['a',1,2,3,4]
w= s[1:3]
t = s[1:-1]print(w,t)
[1, 2] [1, 2, 3]
当i,j省略时代表s本身
s = ['a',1,2,3,4]
w=s[:]print(w)
['a', 1, 2, 3, 4]
2.7、s[i:j:k]
s = ['a',1,2,3,4,5,6,7,8,9]
w= s[1:7:2]
t = s[::-1]#将s中元素倒序装入t中,注意s本身不变print(w,t)
[1, 3, 5] [9, 8, 7, 6, 5, 4, 3, 2, 1, 'a']
2.8、len(s)
s = ['a',1,2,3,4]print(len(s))
5
2.9、min(s)
s = [1,2,3,4]print(min(s))
1
2.10、max(s)
s = [1,2,3,4]print(max(s))
4
使用min(s)和max(s)函数时,序列s中元素类型必须一致,否则会抛出TypeError异常
s = [1,2,3,'4']print(min(s))
Traceback (most recent call last):
File"E:/pythoncode/新建文件夹/sf.py", line 2, in
print(min(s))
TypeError:'
2.11、s.index(x[,i[,j]])
s = [1,2,3,4,1,2,3,1,2,9]print(s.index(1),s.index(2,2),s.index(2,2,10))
0 5 5
2.12、s.count(x)
s = [1,2,3,4,1,2,3,1,2,9]print(s.count(1))
3
三、可变序列公共操作方法
1、操作和返回值
其中s为可变序列,t为可迭代对象;n,i,j,k为整数;x为任意类型。
序号
操作
结果
1
s[i] = x
用x替换s中编号为i的元素,
2
s[i:j] = t
用t替换s中编号从i到j-1的元素
3
del s[i:j]
删除掉s中编号从i到j-1的元素,相当于s[i:j] = []
4
s[i:j:k] = t
s[i:j:k]对应的元素用t中元素代替,t中元素个数必须和切片中元素个数相同
5
del s[i:j:k]
删除切片s[i:j:k]对应的元素
6
s.append(x)
在s尾部添加x,相当于s[len(s):len(s)] = [x]
7
s.clear()
删除s中所有元素,相当于del s[:],s[:] = []
8
s.copy()
复制s中所有元素,相当于s[:]
9
s.extend(t) or s += t
用迭代对象t来扩展s,相当于s[len(s):len(s)] = t
10
s *= n
用s重复n次的结果更新s
11
s.insert(i,x)
将s中编号为i的位置插入x,相当于s[i:i] = [x]
12
s.pop([i])
返回编号为i的元素,并将其从s中移除,默认为最后一个元素
13
s.remove(x)
移除s中第一个x
14
s.reverse()
将s中元素顺序颠倒,s本身变化,无返回值
四、列表
python中的列表和c语言中数组是有区别的,列表中元素类型可以是不同的,而c语言数组元素类型必须一致。
1、构造列表四种方法
空列表:[]
直接填充每个元素:[a,b,c]
使用循环:[x for x in iterable]
使用函数:list() 或者 list(iterable)
2、构造列表实例
#构造空列表b,输出b和b的类型
b =[]print(b,type(b))
#结果
[]
#直接填充每个元素
b = [1,2,'r','logan']print(b,type(b))
#结果
[1, 2, 'r', 'logan']
#利用循环
s = (1,'f',3,5)
b= [x for x ins]print(b,type(b))
#结果
[1, 'f', 3, 5]
#利用函数
s = (1,'f',3,5)
a=list()
b=list(s)print(a,type(a),b,type(b))
#结果
[] [1, 'f', 3, 5]
3、争对列表的操作方法:sort(key=None,reverse=False)
#列表的sort()函数
s = [1,6,3,2]
t=s.sort()print(s,t)
#结果,t为None说明sort()函数无返回值,是在原列表上进行排序的(sorts the list in place),不会生成新列表
[1, 2, 3, 6] None
#带参数key的排序,key接收一个函数,默认按key从小到大排序,加上reverse=True结果反转,下面例子按元素绝对值从小到大,和从大到小排序
defhe(x):returnabs(x)
s= [1,5,3,-2,-8]
s.sort(key=he)print(s)
s.sort(key=he,reverse=True)print(s)
#结果
[1, -2, 3, 5, -8]
[-8, 5, 3, -2, 1]
#可以利用匿名函数,下面例子等价于上面的按绝对值从小到大排序
s = [1,5,3,-2,-8]
s.sort(key=lambdax:abs(x))print(s)
#结果
[1, -2, 3, 5, -8]
#如果key有多个参考条件(lambda函数有多个返回值),先按第一个参考条件排序,排序结果有同名次的再按第二个条件排序,否则就不再参考第二个条件
s = [1,5,3,-2,-8]
s.sort(key=lambda x:(x>0,abs(x)))print(s)
#结果[-2, -8, 1, 3, 5]
#解析
s序列经过lambda函数运算后会返回
s
1
5
3
-2
-8
x>0
True(1)
True(1)
True(1)
False(0)
False(0)
abs(x)
1
5
3
2
8
#先参考x>0条件,排序后s = [-2,-8,1,5,3],因为-2<0,-8<0,1>0,5>0,3>0所以-2和-8名次相同,1和5和3名次相同;再参考abs(x)条件,abs(-2)
五、元组
元组中值也可以是任意类型,使用整数索引,和列表的不同之处在于,元组不能被修改,元组决定因素是元素之间的逗号,而不是括号。
1、构造元组四种的方法
用一对括号表示空元组:()
一个元素的元组:a, or (a,)
多个元素用逗号分隔:a,b,c or (a,b,c)
使用内建函数tuple():tuple() or tuple(iterable)
六、range
range类型表示一个不可变的数字序列,通常用于在for循环中循环特定次数。
1、构造range的方法
range(stop)
range(start,stop[,step])