Python列表推导式,嵌套用法,深拷贝和浅拷贝,元组类型,字符串文本解析
字符串文本解析方法
S='aa vv cc'
S.split([拆分符]) 拆分符不给,默认是空格 => 返回 ['aa','vv','cc'],相当于PHP中的explode()方法
分隔符.列表
L=['aa','b','c']
'-'.L => 将L转化为字符串,并用-隔开 返回 aa-b-c,相当于PHP中的implode()方法
Python变量之间赋值的原意:只是增加了数据对象的绑定关系,而不是复制变量
Python中所有的变量相互赋值,都默认是浅拷贝(不会重新生成一个数据对象,改一个变量,其他绑定着的变量都会被改变)
深拷贝:先引入:import copy 引入 copy 模块
如: import copy
L1 = [1,2,3]
L2 = copy.deepcopy(L1) 此时L2和L1的值相同,但内存地址不同
列表推导式:用一个简单的方法生成 一个列表
[表达式 for 变量 in 可迭代对象 [if 真值表达式]]
如:[i*i for i in range(1,10)] => 生成 [1,4,9,16,25,36,49,64,81](就是1-9的平方)
L=[x for x in range(1,100) if x%2!=0] => [1,3,5,....,97,99]
列表推导式嵌套:
[表达式 for 变量 in 可迭代对象 [if 真值表达式] for 变量2 in 可迭代对象2 [if 真值表达式]]
如:
L1 = [1,2,3]
L2 = [4,5,6]
L3 = [i+j for i in L1 for j in L2]
L3的值为 => [5,6,7,6,7,8,7,8,9] 相当于 L1 和 L2 中的值依次相加,再存入L3中
元组:不可变类型
表示方式:
t = () t = 12, t = 12,22,33 t = (1,) t = (11,12,33)
错误示例:
t = (20) x,y,z = 1,2,5 x,y,z = 'ABC' x,y,z = [10,20,30]
构造函数:
tuple([可迭代对象]) 生成 一个空的元组,等同于()
示例:
t = tuple(range(10))
t = tuple((4,5,6,7)) 必须包2层括号
t = tuple('hellow')
t = tuple([1,2,3,4])
元组的算术运算与字符串、列表等序列完全一致
元组的函数:
t.index(查找内容[,开始位置][,结束位置])查找指定内容在元组中第一次出现的位置
t.count(内容) 返回内容在元组中出现的次数
其他函数:
reversed(可迭代对象) 返回反向顺序的可迭代对象,不会更改传入的对象
sorted(可迭代对象[,reverse =False]) 返回排序后的可迭代对象,不会更改传入的对象,默认是从小到大排序,设置 reverse =True 则为从大到小排序
发表评论