Python机器学习原理与算法实现
上QQ阅读APP看书,第一时间看更新

1.7.3 元组推导式

元组推导式是快速生成元组的方法,但与列表推导式不同,使用元组推导式生成的结果并不是一个元组,而是一个生成器对象,需要通过tuple()函数将生成器对象转换成元组。

示例如下,在Spyder代码编辑区内输入以下代码并逐行运行:

     tuple4=(i for i in range(4)) # 生成一个生成器对象,元素为range(4)中的元素
     print(tuple4) # 查看tuple4,可以发现为生成器对象,而不是元组
     tuple4=tuple(tuple4)        # 使用tuple()函数将生成器对象转换为元组
     print(tuple4) # 查看tuple4,可以发现生成器对象已经转换为元组

可在IPython控制台看到如图1.50所示的运行结果。

图1.50 运行结果

还可以在Python中直接使用for循环遍历生成器对象,以获得各个元素。示例如下,在Spyder代码编辑区内输入以下代码,然后全部选中并整体运行:

     tuple5=(i for i in range(5)) # 生成一个生成器对象,元素为range(5)中的元素
     for i in tuple5:      # 使用 for循环遍历生成器对象以获得各个元素
        print(i,end=',')   # 输出元组元素在同一行显示,并且用“,”隔开
     print(tuple(tuple5))  # 输出新元组。得到运行结果为:0,1,2,3,4,()