第五章 Python序列数据概述
- 数组:Python不能直接创建数组,但可以使用内置的序列数据类型(如列表)实现数组的功能
- 序列数据类型
元组tuple: 定值表,用于存储值固定不表的表
列表list :用于存储值可变的表
字符串str:包括若干字符的序列数据,支持序列数据的基本操作
字节序列数据bytearray/bytes:包括若干字节的序列
序列数据
- 序列索引:上下对应
s[0] s[1] s[2] s[3] s[4] s[-5] s[-4] s[-3] s[-2] s[-1]
讯享网
- 序列的切片操作
i为序列开始下标,j为序列结束下标,k为步长。i省略则从0开始,k省略则步长为1
讯享网s[i:j:k]
- 序列的连接和重复操作
连接操作符+可以连接s1,s1为两个序列,重复操作符*可以重复一个序列n次
支持复合赋值运算: +=和 *=
s1 * s2 s * n n * s
- 序列的成员关系操作
讯享网x in s #True则表示存在 x not in s #True则表示不存在 s.count(x) #返回x在s(指定范围[start,end))中出现的次数 s.index(x,i,j) #s.index(value,[start,[stop]]) 返回x在s(指定范围[i,j))中第一次出现的下标
- 序列的比较运算操作
< ,<= ,==, !=, >=, > - 序列的排序操作
sorted(iterable, key=None, reverse = False)
讯享网reverse = False表示反向排序 key是用于计算比较键值的函数(带一个参数),如key = str.lower
s = 'abAC' sorted(s , key = str.lower) #输出:['a','A','b','C']
- 内置函数
- 序列的拆分
1.变量的个数和序列长度相等:可以将序列值拆分,赋值给多个变量
变量1、变量2、… 、变量n = 可迭代对象
讯享网a,b = (1, 2) a,b #输出:(1,2) a,b,c=(1,2) #ValueError data = (1001,'张三',(80,78,92)) sid, name, scores = data scores #输出:(80,78,92) sid,name,(chinese,math,english) = data math #输出:
2.变量的个数和序列长度不相等:若序列长度未知,可以使用*元组变量,将多个值作为元组赋值给元组变量。在一个赋值语句中 *元组变量只允许出现一次
first, *middles, last = range(10) middles #输出:[1,2,3,4,5,6,7,8] first, second, third, *lasts = range(10) lasts #输出:[3,4,5,6,7,8,9] *firsts, last3, last2, last1 = range(10) firsts #输出:[0,1,2,3,4,5,6] first, *middles, last = sorted([70,88,48,95,85,77]) #去掉最高分和最低分 sum(middles)/len(middles) #去掉最高分和最低分后的平均值
1.元组(任意类型数据的序列,不可变对象)
1.1 使用元组字面量创建元组实例对象
x1,[2,…,xn] 或 (x1,[2,…,xn]) #圆括号可以省略
讯享网t1=1,2,3 ; t2=(); t3=1; t4=(1); t5= 'a','b','c' #输出:(1,2,3)()(1,)1('a','b','c')
如果元组中只有一个项目,后面的逗号不能省略。因为Python解释器把(x1)解释为x1,例如将(1)解释为整数1,讲(1,)解释为元组
使用tuple对象创建元组实例对象
1.2 使用tuple对象创建元组实例对象
tuple() tuple(iterable)
2.列表(可以修改的任意类型数据的序列,可变对象)
2.1 使用列表字面量创建列表实例对象
[x1,[2,…,xn]]
讯享网l1=[]; l2=[1]; l3=["a","b","c"] print(l1,l2,l3) #输出:[][1][‘a’,‘b’,'c']
2.2 使用list对象创建列表实例对象
list() list(iterable)
讯享网l1=list(); l2=list("abc"); l3=list(range(3)) print(l1,l2,l3) #输出:[][‘a’,‘b’,'c'][0,1,2]
s[下表] = x del s[下标] s[i:j]=x del s[i:j] s[i:j] = [] #与上式等价
list对象的方法
s.append(x) #对象x
s.clear() #等价于del s[ : ]
s.copy()
s.extend(t) #序列t
s.insert(i,x) #插眼
s.pop([i]) #返回并删除下标i位置的对象
s.remove(x) #移除第一个x
s.reverse #序列反转
s.sort()
列表解析表达式
讯享网#迭代序列中的所有内容,并计算生成列表 [expr for i1 in 序列1... for iN in 序列N] #按条件迭代,并计算生成列表 [expr for i1 in 序列1... for iN in 序列N if cond_expr]
例如下面代码的结果
[i2 for i in range(10)] [(i,i2) for i in range(10)] [i2 for i in range(10) if i%2 == 0 ] [(x,y,x*y) for x in range(1,4) for y in range(1,4) if x>=y]
3.字符串(有序的字符集合,不可变对象)
字符串格式化P91
3.1 %运算符形式
3.2 format内置函数
3.3 字符串的format方法
4.字节序列(bytes和bytearray)
由8位字节数据组成的序列数据类型,即0<=x<256的整数序列
4.1 bytes常量
使用字母b加单引号或双引号括起来的内容是bytes常量。Python解释器自动创建 bytes型对象实例
1)单引号b’ ’
2)双引号b" "
3)三单引号b‘‘‘ ’’’
4)三双引号b"“” “”"
4.2 创建bytes对象
bytes()
bytes(n)
bytes(iterable) #iterable的只能包含0<=x<256的整数
bytes(object)
bytes([source[,encoding[,errors]]])
讯享网bytes() #b'' bytes(2) #b'\x00\x00' bytes((1,2,3)) #b'\x01\x02\x03' bytes('abc','utf-8') #b'abc'
4.3 创建bytearray对象
bytearray()
bytearray(n)
bytearray(iterable) #iterable的只能包含0<=x<256的整数
bytearray(object)
bytearray([source[,encoding[,errors]]])
4.4 序列操作
b1 = b"abc" b1.replace(b'a',b'f') #输出: b'fbc' b1.replace('b','g') #TypeError:bytes和bytearray的方法不接受字符串参数,只接受bytes和bytearray参数,否则报错

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/38649.html