>>> print(i for i in range(4))
<generator object <genexpr> at 0x10b6c20f0>
迭代如何在生成器中工作。Python生成器是创建迭代器的一种简单方法
简单地说,生成器是一个返回对象(迭代器)的函数,我们可以对其进行迭代(一次迭代一个值)
>>> g=(i for i in range(4))
>>> print(g)
<generator object <genexpr> at 0x100f015d0>
>>> print(next(g))
0
>>>
>>> print(next(g))
1
>>> print(next(g))
2
>>> print(next(g))
3
>>> print(next(g))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>> g=(i for i in range(4))
>>> for i in g:
... print(i)
...
0
1
2
3
>>> for i in g:
... print(i)
...
>>>
>>>
第一种方法是循环遍历列表并逐个打印元素:
输出:
第二种方法
list comprehension
创建一个可以存储的iterable(列表、字典等)输出:
第二个用于对所有元素执行1项操作,例如,将所有元素从字符串转换为int:
循环更适合做很多事情:
你可以自己看看有什么不同。 第一个循环遍历
range
,然后打印整数第二个是生成器表达式
迭代如何在生成器中工作。Python生成器是创建迭代器的一种简单方法
简单地说,生成器是一个返回对象(迭代器)的函数,我们可以对其进行迭代(一次迭代一个值)
在python3中,可以使用元组解包来打印生成器。如果这就是你想要的
第一个代码片段将在列表上迭代,并为循环的每次传递打印i的值。在大多数情况下,您会希望使用类似的方式打印列表中的值:
第二个代码段将计算print语句中的表达式并打印结果。由于print语句中的表达式
i for i in my_list
的计算结果是生成器表达式,因此将输出该生成器表达式的字符串表示形式。我想不出任何现实世界的情况下,这是你想要的结果相关问题 更多 >
编程相关推荐