黑马程序员学Python——推导式

本文主讲:在Python内推导式相关的内容【重要】,简化代码…

了解推导式

一:什么是推导式?
答:推导式是用来简化代码用的

二:推导式适用范围
答:推导式只适用于列表、字典以及集合,也就是说只有列表推导式、字典推导式、集合推导式

列表推导式

列表推导式(根据for循环化简而来)

功能:利用表达式生成一个有规律的列表,列表推导式又叫列表生成式,简化代码量

语法:列表名 = [i for i in range(start,end,step)]其中 for 前面的 i 为返回值

对比一:利用while循环生成有规律的列表;

image-20211009150946893

对比二:利用for循环生成一个有规律的列表

image-20211009150953552

列表推导式生成有规律列表代码:

image-20211009151001346

带 if 的列表推导式

带条件的列表推导式

功能:生成一个有规律的列表,并且符合固定条件

语法:列表名 = [ i 的返回值 for i in range(start,end,step)if 判断条件 ]

语法解析:for循环遍历range可迭代对象后,判断条件是否成立,条件成立返回i的值,不成立则不返回

快速代码体验

image-20211009151023619

多个for实现列表推导式

多个for循环的列表推导式(等同于for循环的嵌套)

功能:打印多个数据组成的数据序列中(可以是列表、元组、集合),相当于for循环的嵌套

语法:列表名 = [ (i的返回值,j的返回值) for i in range(代码1) for j in range(代码2)]

语法解析:两个for循环,其实就是for循环的嵌套,并且返回两个值

快速代码体验

image-20211009151037794

字典推导式

字典推导式

作用:快速将两个列表进行合并为字典或者提取字典中的目标数据

语法一:字典名 = { i 的返回值:value值 for i in range(start,end,step)}

实例一:利用字典推导式完成需求,字典的key为1—5的数字,字典的value为key的2次方

实例代码

image-20211009151051731

语法二(两个列表的合并):字典名 = { 列表1[ i ] :列表2[ i ] for i in range(len(列表名))}

实例二:将两个列表合并在一起 list1 = [“name”,”age”,”gender”] list2 = [“TOM”,21,”男”]

注意事项:两个列表长度一致,len()取哪个长度都可以,长度不一致,要用len()取长度小的,否则会报错

实例代码

image-20211009151102779

功能三:提取字典中的目标数据(工作中需求多,很重要)

语法:字典名 = {key:value for key,value in 字典序列 . items() if 判断条件}

实例:有一个字典 counts = {“游泳”:11,“篮球”:“6”,“排球”:15},提取这个字典中兴趣爱好人数大于10的键值对并保存到另外一个字典中。

快速代码体验:

image-20211009151114387

集合推导式

集合推导式

功能:通过列表生成具有一定规则的集合

语法:集合名 = {i处理后的返回值 for i in 列表序列}

实例:有一个列表 list1 = [1,1,2],通过列表生成一个列表元素2次方的集合

代码演示

image-20211009151128702

未完待续……