Python

Python,第1张

Python 可变字符串

字符串是不可变对象,如果修改其值只能创建新对象。或者用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])
140735345932352
4种创建列表方法
  • 基本语法[]
>>> 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]
]
元组

列表可变,元组不可变

  1. 索引访问
  2. 切片 *** 作
  3. 连接 *** 作
  4. 成员关系 *** 作
  5. 比较运算 *** 作
  6. 计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等
#元组创建

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5689272.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存