admin 管理员组文章数量: 887007
python 基础便利操作
python 便利操作
列表推导式
通常我们生成一个列表:
def fun(x):return x ** 2
l = []
for i in range(5):l.append(fun(i))
实际上可以通过列表推导式来进行简化:[* for i in *]
[fun(i) for i in range(5)]
同时,列表推导式还支持多层嵌套:
In: [m + '_' + n for m in ['a','b'] for n in ['v','e']]
Out:['a_v', 'a_e', 'b_v', 'b_e']
条件赋值
举一个例子,截断列表中超过5的元素,即超过5的用5代替,小于5的保留原来的值:
In: L = [1, 2, 3, 4, 5, 6, 7][i if i <= 5 else 5 for i in L]
Out: [1, 2, 3, 4, 5, 5, 5]
匿名函数与map方法
函数的定义一般具有清晰的映射关系,我们可以用匿名函数的方式进行简洁的表示
fun = lambda x : x ** 2
但显然我们违背了“匿名” 的 含义,许多场合我们无需多处调用一个函数,所以我们往往不会关心函数的名字,只关心函数的映射关系。
(lambda x: x ** 2)(8)
[(lambda x: x ** 2)(i) for i in range(5)]
而上述关于列表推导式的匿名函数映射,我们通过map函数来实现。map返回一个map对象,需要通过list转化为列表
list(map(lambda x, y:str(x)+"_"+y,range(5),list('abcde')))
zip 对象与 enumerate 方法
- zip函数能够把多个可迭代对象打包成一个元组构成的可迭代对象,它返回了一个zip对象,通过tuple, list可以得到相应的打包结果
l1 = ('avd')
l2 = ('efsf')
list(zip(l1,l2))
[('a', 'e'), ('v', 'f'), ('d', 's')]
for i,v in zip(range(len(l)),l):print(i,' ',v,)
0 a
1 v
2 r
3 d
- enumerate是一种特殊的打包,它可以在迭代时绑定迭代元素的遍历序号
l = list('avrd')
for i, v in enumerate(l):print(i,v)
0 a
1 v
2 r
3 d
本文标签: python 基础便利操作
版权声明:本文标题:python 基础便利操作 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732353384h1533736.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论