Python|Python教程:Python中的元组推导式详解

欢迎你来到站长在线的站长学堂学习Python知识 , 本文学习的是《Python中的元组推导式详解》 。 本知识点主要内容有:使用 tuple() 函数 , 可以直接将生成器对象转换成元组、直接使用for循环遍历生成器对象 , 可以获得各个元素、使用__next__()方法遍历生成器对象 , 也可以获得各个元素 。
我们在《python中的列表推导式详解》中学过 , 使用列表推导式可以快速生成一个新的列表 , 或者根据某个列表生成满足指定需求的列表 。
生成指定范围的数值列表 , 语法格式如下:
list = [Expression for var in range
那么我们使用列表推导式的方法用于元组推导式行不行呢?
我们根据列表推导式的方法 , 把“[
”改成“()”试一试:
tuple = (Expression for var in range)
我们也和列表推导式一样的内容:a1 = (i for i in range(10)) #生成一个10以内的元组a2 = (i for i in range(10) if i % 2 == 0) #生成一个10以内的偶数元组print(a1)print(a2)
运行结果如下:<generator object <genexpr> at 0x000001DC03E3C900><generator object <genexpr> at 0x000001DC03DBBD10>>>>
为什么是这样的 , 而不是下面这样我们想要的呢?(0 1 2 3 4 5 6 7 8 9)(0 2 4 6 8)>>>
从上面的执行结果可以看出 , 使用元组推导式生成的结果并不是一个元组 , 而是一个生成器对象 , 这一点和列表推导式是不同的 。
那么怎样才能使用元组推导式获得新的元组呢?
下面讲解3个方法使用元组推导式获得新的元组:
1、在Python中使用 tuple() 函数 , 可以直接将生成器对象转换成元组 。
要使用该生成器对象 , 可以转换成元组或者列表 。 下面我们就上面的内容进行转换成元组和列表 , 代码如下:a1 = (i for i in range(10)) #生成一个10以内的元组a2 = (i for i in range(10) if i % 2 == 0) #生成一个10以内的偶数元组print(\"转换后的元组为:\"tuple(a1)) #转换为元组print(\"转换后的列表为:\"list(a2)) #转换为列表
运行结果如下:转换后的元组为: (0 1 2 3 4 5 6 7 8 9)转换后的列表为: [0 2 4 6 8
>>>
2、在Python中直接使用 for 循环遍历生成器对象 , 可以获得各个元素 。 例如:a = (i for i in range(10)) # 生成一个10以内的元组for i in a: # for 循环遍历生成器对象 print(iend='') # 输出元组元素在同一行显示 , 并且用“”隔开print(tuple(a)) # 输出新元组
运行结果为:0123456789()>>>
3、在Python中使用 __next__()方法遍历生成器对象 , 也可以获得各个元素 。 例如:a = (i for i in range(3)) # 生成一个3以内的元组print(a.__next__()) # 输出第一个元素print(a.__next__()) # 输出第二个元素print(a.__next__()) # 输出第三个元素a = tuple(a) # 转换为元组print(\"转换后的元组:\"a) # 输出新元组
- 太空中的真菌毒素是否危害宇航员健康?科学家:尚不明确
- 科学家:人类只是一片巨大的“空洞虚无”中的一粒微尘!
- 文艺评论丨科幻题材崛起与Z世代审美观照中的双向奔赴
- 华为|华为原董事长孙亚芳:我们有些销售人员眼睛中的客户就像猎物!
- LG|时隔数年,LG gram 14依旧是商务本中的“种子选手”
- Python|十年质保、3400MB/S!279元买512GB NVMe高速固态硬盘
- 格力电器|不要再说Python难了,按照这个学习路线,四周速成Python
- Python|华为再造新车!问界M7揭下外企的遮羞布,余承东:超越百万豪车
- Python|OPPO A96可以升级ColorOS 12了,我看谁还说入门机只管生不管养?
- 为何能被赞誉安全,盘点苹果iOS中的隐私保护措施
