一、列表推导式
1. 语法格式
[ 结果 for 变量 in 可迭代对象 if 条件 ]
2. 代码示例
# 100以内能被3整除的数的平方
gen = [i * i for i in range(100) if i % 3 == 0]
for num in gen:
print(num)
二、生成器推导式
1. 语法格式
( 结果 for 变量 in 可迭代对象 if 条件 )
2. 代码示例
# 100以内能被3整除的数的平方
gen = (i * i for i in range(100) if i % 3 == 0)
gen.__next__()
for num in gen:
print(num)
三、字典推导式
1. 语法格式
{key: value for循环 if 筛选}
2. 代码示例
dic = {"张无忌":"九阳神功", "乔峰":"降龙十八掌", "楚留香":"帅"}
d = {dic[k]: k for k in dic}
print(d)
四、集合推导式
1. 语法格式
{key for if}
2. 代码示例
lst = ["周杰伦","周伯通","周润发","周伯通","周笔畅","周伯通","周星驰","周伯通"]
s = {el for el in lst}
print(s)
备注:?成器表达式和列表推导式的区别:
- 列表推导式比较耗内存. ?次性加载. ?成器表达式?乎不占?内存. 使?的时候才分 配和使?内存
- 得到的值不?样. 列表推导式得到的是?个列表. ?成器表达式获取的是?个?成器.?成器的惰性机制: ?成器只有在访问的时候才取值
原文地址:https://www.cnblogs.com/hq82/p/11745641.html
时间: 2024-11-05 23:38:13