Python基础教程:推导式

78 阅读2分钟

我们就成功创建了一个 列表推导式。我们还可以运用字符串的格式化实现更多样化的输出:

print([f"Python{i} 期" for i in range(1, 51)])

前面两种是列表推导式的普通循环模式,它的基本结构为:

[加工后的变量 for循环]

除了普通循环模式,我们还可以通过给循环增加筛选条件,实现筛选模式的列表推导式:

print([i for i in range(1, 51) if i > 25])

筛选模式的列表推导式的基本结构为:

[加工后的变量 for循环 加工条件]

列表推导式还支持嵌套。

对于这样一个嵌套的循环:

'''

Python学习交流,免费公开课,免费资料,

免费答疑,系统学习加QQ群:579817333

'''

lst = []

for i in range(2):

for j in range(2):

lst.append(i + j)

print(lst)

改成列表推导式结构就成了这样:

print([i + j for i in range(2) for j in range(2)])

嵌套的列表推导式同样可以使用条件进行筛选:

print([(i, j) for i in range(5) if i > 3 for j in range(6) if j < 3])

虽然列表推导式能节省很多代码,但是最多建议嵌套三层。

生成器可以让代码更加简化。比如,我们想求字符串 “alex,meet” 中每个字母 e 的索引。如果用 for 循环来写是可以实现的,但是需要多行代码:

s = 'alex,meet'

count = 0

lst = []

for i in s:

if i == 'e':

lst.append(count)

count += 1

print(lst)

输出结果为:[2, 6, 7]

而如果使用列表生成器的话,只需要一行代码即可实现:

print([i for i in range(len(s)) if s[i] == 'e'])

字典推导式和集合推导式

除了列表之外,其他可变数据类型,比如字典字典和集合也可以通过推导式的方法来创建:

'''

Python学习交流,免费公开课,免费资料,

免费答疑,系统学习加QQ群:579817333

'''

字典推导式

print({i:i+1 for i in range(3)}) # 字典推导式普通循环模式

print({f"Python{i}":i+1 for i in range(3)}) # {变量:变量 for循环}

print({i:i+1 for i in range(3) if i > 1}) # 字典推导式筛选模式

{加工后的变量:加工的后的变量 for循环 加工条件}

现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

了解详情:docs.qq.com/doc/DSnl3ZG…