提前说一点:如果你是专注于Python开发,那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了,而如果你和作者一样只是操作其他技术的Python API那就足够了。
Python提供的推导式,只对列表、字典、集合三种数据类型生效,其他的类型没有推导式一说,且推导式的目的其实是简化代码,所以它无法完成逆天的操作
第一种:列表推导式
它的作用是用一个表达式去创建或者控制一个有规律的列表,注意有规律的
目标:创建一个元素为0-10的列表a = [ i+1 for i in range(10)]
print(a)
结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
列表推导式其实说的就是一个简化的for循环而已,而且列表推导式可以加 if 条件判断
a = [ i for i in range(10) if i % 2 == 0]
print(a)
结果:[0, 2, 4, 6, 8]
同时它可以多个for一起写
a = [ i+j for i in range(10) for j in range(3)]
print(a)
结果:[0, 1, 2, 1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6, 5, 6, 7, 6, 7, 8, 7, 8, 9, 8, 9, 10, 9, 10, 11]
列表推导式,就只有上面这三种模式,太复杂的大家还是直接写 for 循环吧
第二种:字典推导式
字典推导式的作用是合并列表为字典或者提取字典中的数据
目标:创建一个key是0-5,value是key的平方的字典a = { i : i**2 for i in range(5) }
print(a)
结果:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
同样合并列表,我们可以这样写
a = ["name"]
b = ["Tom"]
c = { a[i] : b[i] for i in range(len(a))}
print(c)
结果:{'name': 'Tom'}
第三种:集合推导式
a = { i for i in range(5)}
print(a)
结果:set([0, 1, 2, 3, 4])
有了上面两,我相信大家都已经知道推导式是干什么的了,它其实复杂操作也做不了,但是它可以帮你完成一些如创建、遍历、修改等有规律的便捷操作