python学习笔记:推导式

作者:ssswwww | 发布时间:

Python 推导式
Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。

Python 支持各种数据结构的推导式:

列表(list)推导式
字典(dict)推导式
集合(set)推导式
元组(tuple)推导式
列表推导式
列表推导式格式为:
[表达式 for 变量 in 列表]
[out_exp_res for out_exp in input_list]

或者

[表达式 for 变量 in 列表 if 条件]
[out_exp_res for out_exp in input_list if condition]
解析:out_exp_res是一个用来存储列表生成的元素,相当于变量
for out_exp in input_list用for循环来遍历input_;ist这个列表,并把结果创输给out_exp
也可以这样表示
[x for x in list],这样就能理解了吧
后面加个if,符合条件的就会被遍历,不符合条件的就会被过滤
例如
pig=["fancy","notfancy"]
fancypig=[pigs for pigs in pig if "notfancy" not in pig]
print(fancypig)
nofancypig=[pigoffancy for pigoffancy in pig if "fancy" in pig]
print(nofancypig)
第一个列表是空列表是因为notfancypig在列表a中,条件是它不能在列表中,不符合条件,被过滤了
第二个列表有项目是因为fancy这个字符串在列表a中,符合条件

字典推导式
字典推导基本格式:

{ key_expr: value_expr for value in collection }

{ key_expr: value_expr for value in collection if condition }
例如
a={'pig1':'fancy','pig2':'tidy','pig3':'clean'}
b ={pig:'ok' for pig in a if 'pig1' in a}
print(b)
我是一个猪肉检测员,商人a卖三只猪肉,
第一只的元素是精致的(fancy),合格(pig:'ok'),第二只猪的元素是干净(tidy),第三只的元素是干净(clean),
我仔细检查,发现无误,我在我的检测本上新建了一个列表(字典)
每个猪的元素由原来的元素(clean,tidy,fancy)改成合格(ok),我太懒了
不想亲自写,于是我用一个名为pig的表达式去打印(遍历)商人的本子(字典)
并把打印出来(遍历到的)的元素改成合格


集合推导式
集合推导式基本格式:

{ expression for item in Sequence }

{ expression for item in Sequence if conditional }
我太懒了,寒假作业让我计算我计算2,3,4的二次方我数学不好,我想让python帮我忙
omework={1,2,3,4, 5}
work={wk**2 for wk in homework }
print(work)
元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。

标签:学习笔记