列表推导是构建list的快捷方式,生成器表达式则可以用来创建其他任何类型的序列。
工具/原料
python list
方法/步骤
1
首先我们来实现一个列表推导的例子pstr='abcdef'plis=list(p for p in pstr)print(plis)输出:['a', 'b', 'c', 'd', 'e', 'f']
2
下面我们换一种方式书写,把字符串变成 Unicode 码位pstr='abcdef'plis=[]for p in pstr: plis.append(ord(p))print(plis)输出结果:[97, 98, 99, 100, 101, 102]
3
比较步骤一二的方法,我们发现,步骤一中的方式更精简我们可以将一个列表以这样的方法实现plis=list(p for p in pstr),不仅省去了定义步骤,还精简了很多
4
我们再修改代码,让列表只存储unicode大于100的字符串,这里我们加入if判断,通常我们这样写:pstr='abcdef'plis=[]for p in pstr: if(ord(p) > 100): plis.append(ord(p) )print(plis)输出:[101, 102]
6
步骤5中的方法实现了python中filter的效果,如下我们使用filterpflist=list(filter(lambda a:a>100 ,map(ord,pstr)))print(pflist)输出结果和步骤4,5是一样的[101, 102]注:这里的map,filter都是需要传入一个方法,和迭代对象
注意事项
python list列表推导