从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号。列表推
导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象。
我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的__next__()
方法进行遍历,或者直接作为迭代器对象来使用。不管什么方式使用,元素访问结束后,如
果需要重新访问其中的元素,必须重新创建该生成器对象。
s=(x*2 for x in range(3))
print(s) #结果:<generator object <genexpr> at 0x00000212CB922150>
#生成器推导式生成的是生成器对象,还不是元组对象
a=tuple(s)
print(a) #结果:(0, 2, 4)
b=tuple(s)
print(b) #结果:(),生成器推导式只能迭代一次
m=(x*2 for x in range(3))
print(m.__next__()) #结果:0
print(m.__next__()) #结果:2
print(m.__next__()) #结果:4
print(m.__next__()) #结果报错StopIteration,因为迭代完生成器推导式对象后指针就移动到最后一位了,当再次迭代时就会报错
元组总结:
1. 元组的核心特点是:不可变序列。
2. 元组的访问和处理速度比列表快。
3. 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。
元组_生成器推导式创建元组_总结
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 把一个字符串变成Unicode 码位的列表 使用列表推导,代码将非常简洁 使用列表推导计算笛卡儿积 列表推导的作用...
- 本文引用《利用Python进行数据分析·第2版》 元组tuple 元组是一个固定长度而且不可以改变的序列对象 定义...
- 1. 三元表达式 条件成立打印x , 否则打印y 2. 列表推导式 3.生成器 大前提:生成器就是一种自定义的迭代...
- 三元表达式 列表推导式 生成器表达式 匿名函数 有名字的函数和匿名函数的对比 1 li = [11, 22, 33...