可变字符串
在python中,字符串是不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用 io.StringIO 对象或 array 模块。
import io
s="hello lihelin"
sio=io.StringIO(s) #将s变为可变对象sio
print(sio.getvalue()) #打印sio的值:“hello lihelin”
sio.seek(6) #seek()函数,让指针指向序号6的位置
sio.write("my") #在指针位置写入,会替换原来的字符
print(sio.getvalue()) #"hello myhelin",'li'被'my'替换
基本运算符
1)比较运算符,可以连用
a=6
3<a<10 #返回True
2)按位或:| ,按位异或:^ , 按位与:&
3)移位:<<(左移), >>(右移)
4)按位翻转: ~
注:bin()可以将数字转换成二进制表示
注:python不支持自增自减(++,- -)
小练习:
1)python表示数学1公式

a=1;b=1
def func(x,y):
return (5+10*x)/5-13*(y-1)*(a+b)/x+9*(5/x+(12+x)/y)
print(func(1,2))
2)从控制台输入用户的月薪,进行运算计算出年薪。打印输出用户的年薪。
M_Salary=int(input("请输入月薪:")) #input()函数先输出括号内字符串,再由键盘获取一个字符串,如果输入是数字,则需强制转换
print("年薪为:",M_Salary*12)
3)使用字符串复制,用计算机打印出“爱你一百遍”,打印 100 次
str1="爱你一百遍"
li=[]
for i in range(100):
li.append(str1)
str2='\n'.join(li)
print(str2)
4)将 ”to be or not to be” 字符串倒序输出
a="to be or not to be"
a=a[-1::-1]
print(a)
5)将”lihelinlihelinlihelin”字符串中所有的 e 输出
b="lihelinlihelinlihelin"
count=b.count('e')
print('e'*count)
第三章 序列
list.append(x) 增加元素 将元素 x 增加到列表 list 尾部
list.extend(aList) 增加元素 将列表 alist 所有元素加到列表 list 尾部
list.insert(index,x) 增加元素 在列表 list 指定位置 index 处插入元素 x
list.remove(x) 删除元素 在列表 list 中删除首次出现的指定元素 x
list.pop([index]) 删除元素 删除并返回列表 list 指定位置 index 处的元素, 默认是最后一个元素
list.clear() 删除所有元素 删除列表所有元素,并不是删除列表对象
list.index(x) 访问元素 返回第一个 x 的索引位置, 若不存在 x 元素抛出异常
list.count(x) 计数 返回指定元素 x 在列表 list 中出现的次数
len(list) 列表长度 返回列表中包含元素的个数
list.reverse() 翻转列表 所有元素原地翻转
list.sort() 排序 所有元素原地排序
list.copy() 浅拷贝 返回列表对象的浅拷贝
列表的创建
1)基本语法 [ ] 创建
a = [10,20,'gaoqi','sxt']
a = [] #创建一个空的列表对象
2)list() 创建
>>> a = list() #创建一个空的列表对象
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a = list("lihelin,sxt")
>>> a
['l', 'i', 'h', 'e', 'l','i','n' ',', 's', 'x', 't']
3)range() 创建整数列表
语法格式为: range( [ start,] end [,step ] )
>>> list(range(3,15,2))
[3, 5, 7, 9, 11, 13]
>>> list(range(15,3,-1))
[15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4]
>>> list(range(3,-10,-1))
[3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
4)推导式生成列表(简介一下,重点应用在 for 循环后)
>>> 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]
列表元素的增加和删除
1)append()方法
原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用。
>>> a = [20,40]
>>> a.append(80)
>>> a
[20, 40, 80]
2)+运算符操作
并不是真正的尾部添加元素, 而是创建新的列表对象; 将原列表的元素和新列表的元素依次复制到新的列表对象中。这样,会涉及大量的复制操作,对于操作大量元素不建议使用。
>>> a = [20,40]
>>> id(a)
46016072
>>> a = a+[50]
>>> id(a)
46015432
3)extend()方法
将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。
>>> a = [20,40]
>>> id(a)
46016072
>>> a.extend([50,60])
>>> id(a)
46016072
4)insert()插入元素
使用 insert()方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动。
>>> a = [10,20,30]
>>> a.insert(2,100)
>>> a
[10, 20, 100, 30]
5)乘法扩展
使用乘法扩展列表,生成一个新列表,新列表元素时原列表元素的多次重复。
>>> a = ['sxt',100]
>>> b = a*3
>>> a
['sxt', 100]
>>> b
['sxt', 100, 'sxt', 100, 'sxt', 100]
列表元素的删除
1)del 删除
>>> a = [100,200,888,300,400]
>>> del a[1]
>>> a
[100,200,300,400]
2)pop()方法
pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。
>>> a = [10,20,30,40,50]
>>> a.pop()
50
>>> a
[10, 20, 30, 40]
>>> a.pop(1)
20
>>> a
[10, 30, 40]
3)remove()方法
删除首次出现的指定元素,若不存在该元素抛出异常。
>>> a = [10,20,30,40,50,20,30,20,30]
>>> a.remove(20)
>>> a
[10, 30, 40, 50, 20, 30, 20, 30]
>>> a.remove(100) #报错
列表元素访问和计数
1)通过索引直接访问元素
2)index()获得指定元素在列表中首次出现的索引
index()可以获取指定元素首次出现的索引位置。
语法是: index(value,[start,[end]])。
其中,start 和 end 指定了搜索的范围。
3)count()获得指定元素在列表中出现的次数
4)len()返回列表长度
这篇博客主要讲解Python中的序列操作,特别是字符串作为不可变对象的处理方式,如使用io.StringIO或array模块实现原地修改。还介绍了列表的创建、增加和删除元素的方法,包括append(), extend(), insert()等,并强调了不同方法的效率差异。同时,讨论了列表元素的删除、访问和计数,如del、pop()、remove()、index()、count()和len()函数的应用。"
111390046,10295770,位置感知双向注意网络PBAN在情感分析中的应用,"['自然语言处理', '深度学习', '情感分析', '双向LSTM', '注意力机制']

1万+

被折叠的 条评论
为什么被折叠?



