Python入门学习笔记05

第五章 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']
  • 内置函数

any(iterable) #序列中所有值都为True,返回True
all(iterable) #序列中任意值都为True,返回True

  • 序列的拆分

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]

2.3 列表的序列操作
设置,删除,切片…

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]

例如下面代码的结果

[i**2 for i in range(10)]
[(i,i**2) for i in range(10)]
[i**2 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参数,否则报错
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值