可变字符串
s=‘hello’
sio=io.StringIO(s)
sio.getValue() ‘hello’
sio.seek(3)
sio.write(‘a’)
sio.getValue() ‘helao’
运算符
按位或| 只要有一个是1就是1
按位与& 两个都是1才是1
按位异或^ 一个是1一个是0才是1,不相同才是1
2<<2 =>222=2*4 左移1位
8>>1 =>8/2=4
python里没有自增a++ 自减a–
位运算符和算数运算符>比较运算符>赋值运算符>逻辑判断,主要用小括号
列表
序列:字符串,列表,元组,字典,集合
列表,元组,字典可以存储不同类型的数据
列表开辟连续的内存空间,空间中存储元素的内存地址,有索引,列表可变
创建列表的四种方式
- a=[1,2]
- j将任何可迭代的元素转换成列表,list(‘str’)输出[‘s’,‘t’,‘r’]
- a=range(3) list(a)输出[0,1,2] range([start],end,[step])包括start,不包括end,step=-1表示倒序
- 推导式生成列表a=[x*2 for x in range(100) if x%9==0]
列表元素的增加
append()原地修改列表对象
+[] 创建新对象,拼接
.extend([50,60])原地尾部添加,与+[]相比是原地添加,不创建新对象
insert()把指定元素添加到指定位置,a.insert(2,100),在索引为2的位置插入,原地操作
列表元素的删除
del a[1],删除指定位置的元素,原地操作
a.pop(1) 删除指定位置的元素,并返回删除元素,不指定返回最后一个元素。原地操作
a.remove(20)删除首次出现的指定元素
列表元素的访问,次数统计,成员在资格判断
a.index(20) 返回元素首次出现的索引
a.index(value,[start,[end])
a.count(20)
len([10,20]) 2
成员资格判断 20 in [10,20]
列表切片slice操作
a=[10,20] a.slice[:] 提取整个列表
列表排序
a.sort()升序,原地
a.sort(reverse=True) 降序
打乱顺序:import random
random.shuffle(a)
内置函数sorted(a),排序生成新列表,升序或降序
reversed(a),返回一个新的迭代器对象,只能迭代一次
max(a)
min(a)
sum([10,20]) 输出30,对数值型列表的元素进行求和
元组
属于不可变序列,元组的访问和处理速度比列表快,可以作为字典的剑,整数和字符串也可以作为字典的键,前三个是不可变的,列表不可以做为字典的键
b=(10,)
tuple(‘abc’)可迭代对象转换成元组
b=(10,20) del b
a=[10,20] b=[30,40] c=[50,60]
zip(a,b,c) 输出[(10,30,50),(20,40,60)],对应索引的元素组成元组
生成式推导式产生的是生产器对象s, s.next()下一个元素,这是生成器对象,tuple(s)转换成元组。