为什么在 print(list(g)) 后无法执行 print(i) ?
去掉 print(list(g)) 后才能执行 print(i) 的原因
在提供的代码中,定义了一个生成器函数 y 和一个执行函数 exec。y 函数生成一个序列的迭代器,而 exec 函数先打印该迭代器的列表(即全部内容),然后遍历该迭代器并打印其元素。
问题在于,当执行 exec(g) 时,由于 print(list(g)) 将迭代器 g 中的元素全部消耗,之后在 for i in g 中尝试遍历 g 时,实际上没有任何元素可供遍历。因此,print(i) 无法执行。
要解决这个问题,可以将 exec 函数更改为以下形式:
def exec(g): for i in g: print(i)
这样,它会在不消耗整个迭代器的情况下遍历 g 并打印其元素,因此 print(i) 将能够在 print(list(g)) 之后执行。
文章推荐
-
如何在Python中将DateTime转换为整数?
日期和时间值的操作是编程的一个重要方面,Python 语言为此提供了一个有用的内置模块,称为 datetime。但是,在...
Python
17秒前 0 -
Python - 字典中键的值求和
简介Python 编程语言是一种高级、多功能的编程语言,广泛用于多种目的。该软件由网页设计、数据分析和人工智能组成。人们...
Python
1分钟前 0 -
Python程序向列表中添加元素
在本文中,我们将学习如何在列表中添加元素。在 python 中,有多种方法可以使用不同的运算符将元素添加到列表中。 “运...
Python
2分钟前 0 -
Python程序将列表中的所有元素连接成一个字符串
列表是Python中可用的可变数据结构之一,用于存储任何数据类型的数据。它用方括号“[]”表示,列表中的所有元素都用逗号...
Python
3分钟前 0 -
学习起来哪个更容易,SQL还是Python?
当今最流行的编程语言是 Python 和 SQL,每种语言都有其独特的优点和缺点。不过,仍有待确定的是哪一种更容易学习。...
Python
4分钟前 0
最新文章
- 如何在Python中将DateTime转换为整数? 17秒前
- Python - 字典中键的值求和 1分钟前
- Python程序向列表中添加元素 2分钟前
- Python程序将列表中的所有元素连接成一个字符串 3分钟前
- 学习起来哪个更容易,SQL还是Python? 4分钟前
- Python - 使用切片获取最后K个列表项的总和 5分钟前
- Python程序计算标准差 5分钟前
- 使用内置函数的Python程序来反转数组的元素 6分钟前
- Python程序检测链表中的循环 7分钟前
- 在Python中,两个字典键的乘积 7分钟前