Python基础学习-Day_3
字符串拓展
可变字符串
原地修改字符串,可以使用io.StringIO对象或array模块。
>>>import io
>>>s="hello,jzm"
>>>sio=io.StringIO(s)
>>>sio
<_io.StringIO object at 0x02F462B0> #这是新的对象
>>>sio.getvalue() #查看sio的值
'hello, jzm'
>>>sio.seek(7)#移动到第七位字符
7
>>>sio.wtite("g") #将'j'修改成'g'
1
>>>sio.getvalue()
'hello,gzm'
运算符总结
实际使用中,记住如下简单的规则即可,复杂的表达式一定要使用小括号组织。
- 乘除优先加减
- 位运算和算术运算>比较运算符>赋值运算符
实操
>>> (5+10*x)/5-13*(y-1)*(a+b)/x+9*(5/x+(12+x)/y)
序列
python常用的序列结构有:字符串,列表,元组,字典,集合。
序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放多个值的连续的内存空间。比如一个整数序列[10,20,30,40],可以这样示意表示:
列表
列表的创建
>>>a=[20,30,'yxy','py']
>>>a=[] #创建一个空的列表对象
list()创建
使用list()可以将任何可迭代的的数据转换成列表。
>>>a=list() #创建一个空的列表对象
>>>a=list(range(10))
>>>a
[0,1,2,3,4,5,6,7,8,9]
>>>a=list("yxy,py")
推导式生成列表
使用列表推导式可以非常方便,在开发中经常使用。
>>>a=[x*2 for x in range(5)] #循环创建多个元素
>>>a
[0,2,4,6,8]
>>>a=[x*2 for x in range(100)if x % 9 ==0] #通过if过滤元素
>>>a
[0,18,36,54,72,90,108,126,144,162,180,198]
列表元素的增加和删除
append()方法
原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用
>>>a=[20,40]
>>>a.append(80)
>>>a
[20,40,80]
元素列表的删除
Del删除
删除列表指定位置的元素
>>>a=[10,20,30]
>>>del a[1]
>>>a
[20,30]
pop()方法
pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。
>>>a=[10,20,30,40,50]
>>>a.pop()
50
>>>a
[10,20,30,40]
>>>a.pop(1)
20
>>>a
>[10,30,40]
remove()方法
删除首次出现的指定元素,若不存在该元素抛出异常。
>>>a=[10,20,30,40,50,20,30]
>>>a.remove(20)
>>>a
[10,30,40,50,20,30]
元素的出现次数统计
index()可以获得指定元素在列表中首次出现的索引
index()可以获得指定元素首次出现的索引位置。语法是:index(value,[start,[end]]).其中,start和end指定了搜索的范围。
>>>a=[10,20,30,40,50,20,30]
>>>a.index(20)
1
>>>a.index(20,3)
切片操作
切片是Python序列及其重要的操作,适用于列表,元组,字符串等等。切片的格式如下:
切片slice操作可以让我们快速提取子列表或修改。标准格式为:
[起始偏移量start:终止偏移量end[:步长step]]
列表排序
修改原列表,不建新列表的排序
>>>a=[20,10,40,30]
>>>id(a)
47335544
>>>a.sort() #默认是升序排列
>>>a
[10,20,30,40]
>>>a=[10,20,30,40]
>>>a=sort(reverse=True) #降序排列
>>>a
[40,30,20,10]
>>>import random
>>>random.shuffle(a) #随机排序
>>>a
[30,10,20,40]
创新列表的排序
我们可以通过内置函数sorted()进行排序,这个方法返回新列表,不对原列表做修改。
>>>a=[20,10,40,30]
>>>id(a)
1795936879624
>>>a=sorted(a)
>>>a
[10,20,30,40]
>>>id(a)
1795936880712
列表相关的其他内置函数汇总
max和min
用于返回列表中最大和最小值。
二维列表
二维列表可以帮助我们存储二维,表格的数据:
a = [
["高小一", 18, 30000, "北京"],
["高小二", 19, 20000, "上海"],
["高小五", 20, 10000, "深圳"],
]
for m in range(3):
for n in range(4):
print(a[m][n], end="\t")
print() # 打印完一行,换行
元组tuple
元组属于不可变序列,不能需改元组中的元素。因此,元组没有增加元素,修改元素,删除元素相关的方法。