TypeError: object of type 'generator' has no len()
时间: 2023-06-21 10:19:19 浏览: 87
TypeError object of type ‘type’ has no len()—Python报错问题:
这个错误是因为你在尝试获取一个生成器对象的长度,而生成器对象是没有长度的。你可以将生成器转化为列表,然后获取列表的长度。例如:
```python
my_generator = (x**2 for x in range(5))
my_list = list(my_generator)
print(len(my_list))
```
这将输出 `5`。注意,如果生成器很大,将其转换为列表可能会占用大量的内存。如果你只需要获取元素数量,而不需要访问生成器的所有元素,你可以使用 `sum()` 函数来计算生成器中元素的数量,例如:
```python
my_generator = (x**2 for x in range(1000000))
count = sum(1 for _ in my_generator)
print(count)
```
这种方法不会占用大量内存,因为它只计算了生成器中元素的数量,而不是将所有元素存储在列表中。
阅读全文