3、python可变字符串、操作符、列表、元组

(一)可变字符串
可变字符串io.Stringio对象
生成可变字符串对象: a=io.StringIO(字符串)
获取可变字符串对象的值:a.getvalue()
跳到可变字符串对象指定位置:a.seek(7) 跳到位置7(位置1开始)
更改可变字符串对象指定位置字符:a.write(‘g’)

(二)操作符
2.1、比较操作符可以连用:4<a<10,a为3返回True
2.2、位运算:| 按位取或(二进制)、& 按位取并(二进制)、^ 按位取异或(二进制),返回的结果为10进制数,通过bin(a)转为二进制,通过。
数字<<位数 左移1位相当于乘2,左移2位相当于乘4。数字>>位数 右移1位相当于除以2,右移2位相当于除以4。
2.3、增强赋值操作:+=,-=,*=,/=,//=,%=,**=,<<=,>>=,|=,&=,^=
2.4、加法:数字加法、字符串加法、列表或元组加法(将多个列表或元组合并为1个)
2.5、乘法:数字乘法、字符串乘法、列表或元组乘法(将列表或元组复制多次,结果为1个列表或元组)
2.6、计算优先级:位运算与算术运算>比较运算>赋值运算>逻辑运算,通过括号来实现计算优先级
(三)序列–列表
序列:是一种存储方式,用来存储一系列值,在内存中就是一块用来存放多个值的连续的内存空间。序列包括字符串、列表、元组、字典、集合,有相似的操作。
字符串是字符序列
列表是用于存储任意数目任意类型的数据集合,类型可以不一致,是可变的任何元素的序列,是包含多个元素的可变连续内存空间,列表的每个元素对应一个对象,列表使用一段连续的内存空间存储的这些对象的地址,列表变量是对列表地址的引用。对列表的操作包括增加元素、删除元素等。

3.1、列表的生成:
3.1.1、直接生成:a=[元素1,元素2,…,元素n]
3.1.2、由可迭代数据生成列表:a=list(可迭代对象)
range(start,end,步长)生成range对象,start(默认0)、步长(默认1)参数可选,包头不包尾,步长为负数指从负向开始例如range(20,3,-1),list(range())生成整数列表。
3.1.3、先生成空列表,再添加数据:a=list() a.append(元素1) a.append(元素2)
3.1.4、推导式生成列表[x*2 for x in range(100) if x%9=1] for 循环生成列表,if进行过滤

3.2、列表元素增加
当列表增删元素时,会自动进行内存管理,涉及列表元素的移动。
尽量增加或删除尾部元素,提高效率,若修改的是中间元素,涉及对后面元素的移位,效率较低
3.2.1、a.append(元素),1个元素添加进列表尾部,速度最快,操作后还是同一个列表对象
3.2.2、a+[元素],创建一个新的列表对象,将原来列表的元素和新的列表元素复制到新的列表对象,涉及大量复制操作
3.2.3、a.extend(列表),将另一个列表的元素扩展进原有列表尾部,操作后还是同一个列表对象
3.2.4、a.insert(位置,元素) 在列表该位置插入元素,该位置及位置之后的元素后移,会影响处理速度
3.2.5、乘法扩展:将列表元素复制多次生成一个新列表。
3.3、删除元素:
3.3.1、del a[位置] 删除该位置元素,将该位置之后的元素全部往前移1位(替换前一位),与insert相反
3.3.2、a.remove(值):删除首次出现的指定元素(值),找不到会报错
3.3.3、a.pop(位置) :位置参数可选,默认最后一个,删除并返回该元素
3.4、其他操作:
3.4.1、a[位置]:获得列表元素,不能超出范围
3.4.2、a.index(值,开始位置,结束位置):获取第一次出现该值的位置,开始位置、结束位置为可选参数(不包含结束位置)。
3.4.3、len(a):列表长度
3.4.4、元素 in a:元素是否在列表中,True or False
3.4.5、max(a)返回列表最大值,min(a)返回列表最小值,sum(a)对列表元素相加,非数值型会报错
3.5、列表切片:a[起始偏移量,终止偏移量,步长],与字符串类似,包头不包尾,步长为负从右侧开始,起始偏移量、终止偏移量超出字符串范围不会报错。
3.6、列表排序:
3.6.1、a.sort(reserve=True)对列表进行排列不生成新对象,默认升序。random.shuffle(a)对列表a随机排序不生成新对象。
3.6.2、sorted(a)对列表进行排列生成新对象,
3.6.3、reserved(a)不修改原对象,只生成一个逆序排列的可迭代对象,只能用一次(指针从最后一个指向第一个元素,之后读取为空),通过list(reserved(a))实现列表逆序操作。
a[::-1]可实现列表逆序操作
3.7、二位维列表:以列表为元素的列表,可存储表格,一个元素代表一行。
a[外层列表索引][内层列表索引]
循环打印,嵌套for循环,要缩进
(四)序列–元组
4.1、元组:为不可变的序列
4.2、元组的创建:通过a=(元素1,元素2,…元素n),括号可省略,如果只有1个元素后面需加逗号。通过tuple(可迭代对象)创建,可迭代对象包括字符串、列表、range()等。删除元组del a。
4.3、元组的切片:与列表类似,但是不能更改元素
4.4、元组的排序:只能通过sorted(A)排序,生成一个新对象
4.5、元组其他操作:a+b、max(a)、min(a)、sum(a)、len(a),与列表操作类似。
4.6、zip函数:将多个列表同一个位置的元素合并为一个元组,返回一个zip对象,通常通过list()函数生成由上述元组组成的列表
生成器推导式对象:a=(x*2 for x in range(100))结果不是元组也不是列表,而是一个生成器对象,只能访问1次,第2次访问为空。需重新生成一次,指针从左往右遍历整个对象。可以通过tuple(a)变成一个元组,通过a.__next__一个一个访问迭代器对象的元素。和整数、字符串一样,列表可以作为字典的键,因为是不可变的,列表不能作为字典的键。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值