使用yield 之后如何取得条数?
时间: 2023-07-20 12:17:50 浏览: 195
Python yield 使用方法浅析
使用 `yield` 关键字定义生成器函数时,每次调用该函数都会返回一个生成器对象,该对象可以通过循环来逐条读取生成器函数中生成的数据。要统计生成器中生成的数据条数,可以使用 Python 中的内置函数 `len()` 和 `sum()`。
具体地,可以使用 `len()` 函数来统计生成器中生成的数据条数,例如:
```python
def process_data(fullStr):
for line in fullStr.upper().split("\n"):
yield line.split()
# 使用生成器逐条读取和处理数据
result = process_data(fullStr)
count = len(list(result)) # 统计生成器中生成的数据条数
print(count)
```
在这个例子中,我们先使用 `process_data` 函数生成一个生成器对象 `result`,然后将该对象转换为列表,并使用 `len()` 函数统计列表中元素的个数,即生成器中生成的数据条数。
另外,如果生成器中生成的数据是数字类型,还可以使用 Python 中的内置函数 `sum()` 来统计生成器中生成的数字总和,例如:
```python
def generate_numbers(n):
for i in range(n):
yield i
# 使用生成器生成数字,并统计数字总和
result = generate_numbers(10)
total = sum(result)
print(total)
```
在这个例子中,我们定义了一个生成器函数 `generate_numbers`,每次生成一个数字,并使用 `sum()` 函数统计生成器中生成的数字总和。注意,在调用 `sum()` 函数之前,需要先将生成器对象转换为列表,否则会出现 `StopIteration` 异常。
阅读全文