列表推导式和生成器推导式

本文介绍了Python中的列表推导式和生成器推导式,包括它们的创建和使用方法。列表推导式占用内存,可重复利用,而生成器推导式节省内存但不可重复利用。通过示例展示了两者的区别,强调在处理大量数据时使用生成器表达式更为高效。
摘要由CSDN通过智能技术生成

1. 列表推导式和生成器推导式  简单理解

列表推导式占用内存,可以重复利用
生成器推导式节省内存,但不可重复利用

“列表推导式”和“生成器表达式”的区别
1. 列表推导式的创建及使用
用方括号 [ ] 包含内容,里面利用for循环和相应的函数生成相应序列

# 单循环
example_01 = [x * 2 for x in range(10)]  # 创建列表推导式
print(example_01)
1
2
3
输出:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
1
# 双循环
example_02 = [(i,j) for i in range(3) for j in range(5)] # 创建列表推导式
print(example_02)
1
2
3
输出:[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4)]
1
2. 生成器表达式的创建及使用
除了有一种称之为 “惰性计算” 的特点以外,生成器表达式和列表推导式的用法基本一致,只不过是把一对中括号 [ ] 变换为一对小括号 ( ) 。

example_03 = (x * 2 for x in range(10) if x % 2 == 1)  # 创建生成器表达式
print(example_03)   # 实际调用生成器时代码并不会立即执行
1
2
输出:<generator object <genexpr> at 0x000001AACF7D3CF0>
1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值