可变字符串
原地修改字符串。io.
eg:
s="hello"
import io
sio=io.springIO(S)
sio.getvalue()
>>> “hello”
基本运算符
1.比较运算符可连用,含义相同。
2.位操作:
eg:
a=0b11001 #a=25
b=0b01000 #b=8
c=a|b #c为a或b
bin(c) #数字转换成二进制表示
a<<2 #左移一位相当于乘以2,左移两位相当于乘以4,左移三位乘以8,如此类推。
3.加法操作
可用于数字相加,字符串拼接,列表及元素等合并。
4.乘法操作
可用于数字相乘,字符串复制,列表及元素等复制。
运算符优先级
1.乘除优先加减
2.位运算和算术运算>比较运算符>赋值运算符>逻辑运算符
序列
1.常用的序列结构
字符串,列表,元祖,字典,集合
2.用来存放多个值的连续的内存空间,存储的是整数对象的地址。
列表
1.列表:存储任何数目,类型的数据集合。为可变序列
2.常用功能:增加元素,删除元素,访问元素,技术,列表长度。
3.创建方法
(1)基本语法[]创建
eg:
a=[] #创建空的列表对象
a.append(20) #为列表增加值
(2)list()创建
可迭代的数据转化成列表
(3)range()创建整数列表
range([start],[end],step)
eg:
list(range(3,15,2)) #从三到十五,步幅为2
list(range(-30,15,-2)) #从-30到十五,步幅为-2,倒着数
(4)推导式生成列表
eg:
a=[x*2 for x in range(5) if x%9==0] #循环创建多个元素,if过滤元素,
需满足if 条件
运行结果为:a=[0,2,4,6,8]
经常与for循环相结合。
4.列表元素增加
一般在列表的尾部进行操作,中间会降低效率。
(1)append()方法
a=[] #创建空的列表对象
a.append(20) #为列表增加值
a
[20] #运行结果
(2) +运算符操作
不是真的尾部加元素,而是创建新的列表对象。
(3) extend方法
在尾部对元素进行扩展,为原地操作,没有新的列表对象产生。
(4) insert()插入元素
a=[1,2,3]
a.insert(2,6)
a
[1,2,6,3] #运算结果
(5)乘法扩展
类似于复制
5.列表元素删除
(1)del 删除
删除指定位置的元素,类似于数组的拷贝(insert的方向理解)——每一个数依次拷贝到前一个数中,依次往前挪。
(2)pop方法
删除某个位置的元素并返回指定位置,未指定则会默认最后一个元素进行删除。
(3)remove()方法
删除首次出现的指定元素,不存在则为异常(not in list)。
6.列表元素访问
(1)通过索引访问
指定位置进行索引。
(2)index()获得指定元素在列表中首次出现的索引
可以指定搜索的范围,并用语法:index(value,[start,end])来实现
(3)count()获得指定元素在列表中出现的次数
(4)len()返回长度
7.slice切片操作
快读提取子列表或修改,类比于字符串。
a[起始量:终止量:步幅](包头不包尾)
8.列表排序
(1)修改原列表,不建新列表的排序
a.sort() #默认升序排列
a.sort(reverse=true) #降序排列
random.shuffle(a) #打乱顺序
(2)建新列表的排序
内置函数sorted()进行排序,这个方法返回新列表,不对原列表进行修改。
(3)reversed()返回迭代器
不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。(只可以用一次)
9.多维列表
二维列表可以存储二维,表格的数据。
a=[
[1,2,3],
[5,6,9]
] #表示表格的数据
a[0][1]
>>>2
打印完整列表:
a=[
["a",12,13,"haha" ],
["b",15,19,"dudu" ],
["c",11,10,"houhou" ],
] #输入列表信息,为3*4的列表
for m in range(3): #获取0,1,2的行列表(第一维)
for n in range(4): #获取0,1,2,3列列表(第二维)
print(a[m][n],end="\t")
print() #打印完一行,换行
#注意嵌套(for)与缩进(四个空格或一个tab)
元组
1.为不可变序列,不可修改元组中的元素。可以通过tuple()创建元组。
2.元素的访问与计数
(1)元素不可修改,不支持赋值
(2)类似于列表,但返回的仍然是元组。
(3)只可使用内置函数sorted(tupleObj),并生成新的列表对象。
3.zip
zip(list1,list2,…),将列表合并处理成元组,并返回zip对象。
生成器推导式创建元组
类比于列表对倒是,但是生成的是一个生成器对象。
tuple(s) # 只可用一次。
s.__ next__()#进行迭代时,可取下一个值。不需一次性全部读取。