Python基础09-列表推导式和生成器表达式_列表推导式或生成器表达式

91 阅读4分钟

2.3 案例

三、 列表推导式和生成器表达式的区别


一、列表推导式

1.1 列表推导式的语法

**列表推导式语法形式为:
[expression for expr1 in sequence1 if condition1
 for expr2 in sequence2 if condition2
 for expr3 in sequence3 if condition3
 ...
 for exprN in sequenceN if conditionN]**

列表推导式在逻辑上等价于一个循环语句,只是在形式上更加简洁!

1.2 比较列表推导式和循环

# 使用列表推导式
list1 = [x*x for x in range(10)]
print(list1)         # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 使用循环
list2 = []
for i in range(10):
    list2.append(i*i)
print(list2)         # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

1.3 案例

使用列表推导式查找列表中最大元素的所有位置

from random import randint
x = [randint(1,10) for i in range(20)]
m = max(x)
print([index for index, value in enumerate(x) if value  == m])

二、生成器表达式

2.1 概念

        生成器表达式(generator expression)的用法与列表推导式非常相似,在形式上生成器表达式使用圆括号(parentheses)作为定界符,而不是列表推导式所使用的方括号(square brackets)。

2.2 生成器表达式的语法

生成器表达式的基本格式:

(expression for item in Sequence )

(expression for item in Sequence if conditional )

2.3 案例

# 使用生成器对象__next__()方法或内置函数next()进行遍历
a = ((i+2)**2 for i in range(10))  #创建生成器对象
print(a)        # <generator object <genexpr> at 0x0000000003095200>
#将生成器对象转换为元组
print(tuple(a)) # (4, 9, 16, 25, 36, 49, 64, 81, 100, 121)
print(list(g))  # []

g = ((i+2)**2 for i in range(10))  #重新创建生成器对象
print(g.__next__())        #使用生成器对象的__next__()方法获取元素
# 4
print(g.__next__())        #获取下一个元素
文末有福利领取哦~
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

👉**一、Python所有方向的学习路线**

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/bff7eeb139914ba7a12c5950ff23df70~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771417938&x-signature=Kfyv%2FhewpxO5qxdgtF9VDBZ8DCo%3D)

👉**二、Python必备开发工具**

![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/4d4bb95dc421417bac66deec594ec367~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771417938&x-signature=XzRiXjWrfvSTQE2cttZV%2BCzK5fA%3D)  
👉**三、Python视频合集**

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。  
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/5b4691866dc24eb0910dd16804f25b38~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771417938&x-signature=lV5Mr%2FrkKlZ8RJunSR5Iai%2FJgo4%3D)

👉 **四、实战案例**

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。**(文末领读者福利)**  
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/63774f828b104f00938ba95ec47872f8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771417938&x-signature=yKP%2BdCuyHWL7udFF97zBE27YWLw%3D)

👉**五、Python练习题**

检查学习结果。  
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/0effa3c7c4a54c7f982abd7e6a27e111~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771417938&x-signature=nKaO%2FZJmLYcc2aA%2FWVXKMmX9NNs%3D)

👉**六、面试资料**

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。  
![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/a1ddc455d16a480a8a56308711c4e1bb~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771417938&x-signature=vLUnMF6VY%2BSR52C4IOsrwYSvRw0%3D)

![img](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e7a3eef773334b419f6a6237dce09380~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771417938&x-signature=TdwSu1Dsdn7oRpDPMxm%2Bpc4mxZQ%3D)

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传



**了解详情:https://docs.qq.com/doc/DSnl3ZGlhT1RDaVhV**