mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
210 字
1 分钟
列表推导式
2026-03-12

列表推导式#

列表推导式是纯c实现,比起for循环这种能美观并提升性能😘

下面的代码是实现从a里面读取出偶数并塞入一个集合之中

a=[1,2,3,4,5]
squers = []
for i in a:
if i%2==0:
squers.append(i)
print(squers)

列表推导式语法#

语法:[表达式 for 变量 in 可迭代对象 if 条件] 整体结构就是一个列表包裹:结果表达式,循环表达式,条件判断语句

squers = [n**2 for n in a if n%2==0]
print(squers)

几乎是一行搞定,牛逼吧!👌👌👌

为什么要用?#

正常咱们遍历一个嵌套列表,需要用两层循环

#嵌套展开
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 原始写法:两层 for 循环
flat = []
for row in matrix:
for val in row:
flat.append(val)

推导式写法:从左到右对应循环顺序

flat = [val for row in matrix for val in row]
结果: [1, 2, 3, 4, 5, 6, 7, 8, 9]

依旧一行秒了😘

多重条件

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 既是偶数,又大于 5
res = [x for x in nums if x % 2 == 0 if x > 5]
# 结果: [6, 8, 10]

坑:if-else(注意位置!条件放在前面)!!!!!!🙌

nums = [1, 2, 3, 4, 5]
# 偶数保留,奇数变成 -1
res = [x if x % 2 == 0 else -1 for x in nums]
# 结果: [-1, 2, -1, 4, -1]

字典推导式

#语法:# 语法:{key_expr: value_expr for k, v in iterable if condition}
ai = {"name":"joke","age":20}
#原始写法
for k,v in ai.items():
print(f"{k}的年龄是{v}")
#优化后
aav={k:v for k,v in ai.items()}
print(aav)
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

列表推导式
https://mizuki.mysqil.com/posts/tds/
作者
神秘大胖狗
发布于
2026-03-12
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00