[原]Python推导式

李余通 18/04/22 10:23:44

Python中一共有三种推导式,做一个简述。
推导式的结构

开始符号 处理结果 迭代对象 过滤条件 结束符号

列表推导式

读取输入的内容并转成整数。

[int(x) for x in sys.stdin.readline().split() if x != '\n']

开始符号:[
结束符号:]
处理结果:int(x)
迭代对象:for x in sys.stdin.readline().split()
过滤条件:if x != '\n' #实际上这句话可以不要
会生成一个类似[1,2,3,4]的列表

生成器表达式

这个和列表推导式很类似,只是开始符号和结束符号变成了()
生成器的好处是惰性计算,不会一下子占用太多内存。

集合推导式

这个和列表推导式很类似,只是开始符号和结束符号变成了{}

{x**2 for x in [1,2,3,4,1,2,3] if x != 1}
==>{16, 9, 4}

字典推导式

符号:{}
处理结果k:v

#eg1
{x:str(x) for x in [1,2,3]}
==>{1: '1', 2: '2', 3: '3'}
#eg2
{k:v**2 for k,v in enumerate([1,2,3])}
==>{0: 1, 1: 4, 2: 9}
作者:baidu_35085676 发表于 2018/04/22 10:23:44 原文链接 https://blog.csdn.net/baidu_35085676/article/details/80036614
阅读:87