推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。主要包括数组推导式,字典推导式以及集合推导式
数组推导式
数组推导式的格式如下
variable = [out_exp_res for out_exp in input_list if out_exp == 2]
out_exp_res: 列表生成元素表达式,可以是有返回值的函数。
for out_exp in input_list: 迭代input_list将out_exp传入out_exp_res表达式中。
if out_exp == 2: 根据条件过滤哪些值可以。
样例
l = [i for i in range(10)]
print(l)
def square(i):
return i * i
p = [square(i) for i in range(10)]
print(p)
执行结果如下图,通过推导式获得的是新的数组列表
字典推导式
字典推导式和数组推导式类似,主要常用的功能是将一个字典的key和value互换。
d = {"vs": 2, "sfb": 42}
new_d = {value: key for key, value in d.items()}
print(d)
print(new_d)
执行结果如下
当然,也可以统计各个集合中元素的长度
s = {"sdvsvs","svsv","df"}
s_len = {key:len(key) for key in s}
print(s_len)
执行结果是
集合推导式
集合推导式和数组推导式类似,在使用集合推导式时,主要利用了集合的不重复特点,例如将一些数组中的部分值去重,
names = ['Bob', 'JOHN', 'alice', 'bob', 'ALICE', 'James', 'Bob', 'JAMES', 'jAMeS']
names_standard = {name.lower() for name in names}
print(names)
print(names_standard)
执行结果如下
以上就是推导式的学习,上面的代码可以通过git获得