
字符串是不可变对象,如果修改其值只能创建新对象。或者用io.StringIO()原地修改
>>> import io
>>> a = '123456789'
>>> b = io.StringIO(a)
>>> b
<_io.StringIO object at 0x00000249E854D820>
>>> id(a)
2516453935024
>>> id(b)
2516453742624
>>> b.seek(7)
7
>>> b.write('6')
1
>>> b.getvalue()
'123456769'
运算符
序列
常用序列结构:字符串、列表、元组、字典、集合
a = [10,20,30,40]:首先创建四个对象,然后将4个对象的ID保存到列表里面(a[0]…),a变量保存着列表的ID。
>>> a = [10,'sxl','1万'] >>> id(a) 2283244129664 >>> id([10,'sxl','1万']) 2283244125440 >>> id(10) 140735345932352 >>> id(a[0]) 1407353459323524种创建列表方法
- 基本语法[]
>>> a = [] #创建一个空的列
- list()创建
>>> a = list('sxl')
>>> a
['s', 'x', 'l']
>>> list(range(5))
[0, 1, 2, 3, 4]
- 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,
- 推导式生成列表
>>> 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 = ['sxl',123] >>> a.append(666) >>> a ['sxl', 123, 666]
#extend()方法,尾部添加新列表,不创建新的列表对象 >>> a.extend([33,'yq']) >>> a ['sxl', 123, 666, 33, 'yq']
#+运算符 *** 作,创建新的列表对象 >>> a = [20,40] >>> id(a) 46016072 >>> a = a+[50] >>> id(a) 46015432
#insert()插入元素,元素后移 >>> a.insert(2,'zpw') >>> a ['sxl', 123, 'zpw', 666, 33, 'yq']
#乘法扩展 >>> a *=3 >>> a ['sxl', 123, 'zpw', 666, 33, 'yq', 'sxl', 123, 'zpw', 666, 33, 'yq', 'sxl', 123, 'zpw', 666, 33, 'yq']列表元素的删除
本质上还是拷贝元素
#del 删除 针对索引 >>> a = [100,200,'30',66,30,199,455,30,60] >>> del a[6] >>> a [100, 200, '30', 66, 30, 199, 30, 60]
#pop() 针对索引 >>> a.pop() 60 >>> a [100, 200, '30', 66, 30, 199, 30] >>> a.pop(0) 100 >>> a [200, '30', 66, 30, 199, 30]
#remove(),针对具体元素 >>> a.remove(30) >>> a [200, '30', 66, 199, 30]列表元素访问和计数
>>> a.index('30') #索引
1
>>> a.count(30) #计数
1
>>> len(a) #长度
5
>>> 20 in a #判断
False
列表切片
>>> a [200, '30', 66, 199, 30] >>> a[1:] ['30', 66, 199, 30] >>> a[1:3] ['30', 66] >>> a[-3:-1] [66, 199] >>> a[:-1] [200, '30', 66, 199]列表遍历
for obj in listObj: print(obj)列表排序
- sort()排序
>>> a = [1,3,6,0,5,4,2] >>> a.sort() >>> a [0, 1, 2, 3, 4, 5, 6] >>> a.sort(reverse = True) >>> a [6, 5, 4, 3, 2, 1, 0]
- 内置函数sorted()排序
>>> sorted(a) #生成新列表,原列表不变,默认升序 [0, 1, 2, 3, 4, 5, 6] >>> a [6, 5, 4, 3, 2, 1, 0]
小疑问:sort()不返回值,只是一个方法;而sort()返回值,是一个函数。
二维列表a = [
['sxl',21,1000],
['yq',21,500]
]
元组
列表可变,元组不可变
- 索引访问
- 切片 *** 作
- 连接 *** 作
- 成员关系 *** 作
- 比较运算 *** 作
- 计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等
#元组创建
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)