Python列表推导式,嵌套用法,深拷贝和浅拷贝,元组类型,字符串文本解析

Python列表推导式,嵌套用法,深拷贝和浅拷贝,元组类型,字符串文本解析

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 则为从大到小排序


最后编辑于:2019/07/20作者: 牛逼PHP

发表评论