Python推导式 - 最全用法

正确的写法是使用Python的推导式:2、 带条件的推导式 生成一个列表,包含1到100之间是3的倍数的数字的方法:代码:3、 带条件的表达式 生成一个列表,如果是3的倍数就用平方,否则就用是数字本身:代码:结合上面的3个例子,来看一下推导式总结:4、 使用函数 如果推导条件或者表达式特别复杂怎么办...
Python推导式 - 最全用法
Pythonic - 很Python

写一段代码生成1到100之间的数字的平方的列表,答案是:

如果你这样写,你就不Pythonic了:

正确的写法是使用Python的推导式:

2、 带条件的推导式

生成一个列表,包含1到100之间是3的倍数的数字的方法:

代码:

3、 带条件的表达式

生成一个列表,如果是3的倍数就用平方,否则就用是数字本身:

代码:

结合上面的3个例子,来看一下推导式总结:

4、 使用函数

如果推导条件或者表达式特别复杂怎么办?可以使用函数。

推导所有1-100之间的所有质数:2,3,5,7...

把推导的条件放在函数中,既可以应对复杂的条件,又可以利用推导式的简洁写法。

同理,如果生成推导结果的过程很复杂,也可以把逻辑放到函数中。

推导1900到2021年之间所有的年份,标记出闰年,生成结果:

代码:

5、 嵌套表达式 - 不推荐使用

从2000年到2021年,生成每个月份:'2000年:1月', '2000年:2月', '2020年:3月', ..., '2021年:12月'

这里有两个for循环,类似于:

是不是下面的特别容易懂?所以两层的循环不推荐使用推导式,哈哈。

那我为什么还要讲?你会碰到有人这么写,知道它的存在还是有点必要的。

6、 推导巨大的列表 - 不要这么干!

推导出1到100亿之间的数字的平方,代码如下:

但是这段代码很可能会卡死你的电脑,除非你的电脑是超级计算机。因为它要在内存中做100亿次计算,然后保存这100亿个数字。

7、 使用生成器

这种情况下,我们应该使用推导生成器,用法很简单:

打印出来是一个生成器:

这是一个生成器,它不会一次性生成100亿个数字,只有调用next()的时候,它才会生成一个新的,返回给你。也就是说,同一个时间,只保存一个数字。

8、 推导字典

推导字典的方式和推导列表很相似,只不过:

推导一个包含数字和数字平方组成的字典,结果是这样的:

代码:

反过来,平方在前面,数字在后面:

给下面的字典按照分数排序:

排序结果:

代码:

9 推导集合Set

推导集合的方式和列表是一样的,区别在于:

下面的名字列表,去掉前后空格后去掉重复的名字:

推导结果:

代码:2024-08-11
mengvlog 阅读 6 次 更新于 2025-07-19 13:45:50 我来答关注问题0
檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部