迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中获取生成器的长度

作者:迹忆客 最近更新:2022/10/20 浏览次数:

在 Python 中获取生成器的长度:

  1. 使用 list() 类将生成器转换为列表。
  2. 将列表传递给 len() 函数,例如 len(list(gen))
  3. 请注意,一旦生成器转换为列表,它就会被耗尽。
def g():
    yield 1
    yield 2
    yield 3


gen = g()

result = len(list(gen))
print(result)  # 👉️ 3

Python 中获取生成器的长度

请注意,一旦生成器转换为列表,它就会被耗尽。

def g():
    yield 1
    yield 2
    yield 3


gen = g()

print(len(list(gen))) # 👉️ 3

print(len(list(gen)))  # 👉️ 0

我们可以将生成器转换为列表并将结果存储在变量中。

def g():
    yield 1
    yield 2
    yield 3


gen = g()

my_list = list(gen)

print(len(my_list))  # 👉️ 3

现在,我们可以根据需要多次迭代列表。

另一种方法是使用内置的 sum() 函数。

def g():
    yield 1
    yield 2
    yield 3


gen = g()


result = sum(1 for _ in gen)
print(result)  # 👉️ 3

print(list(gen))  # 👉️ []

sum 函数接受一个可迭代对象,从左到右对其项求和并返回总数。

我们有效地将生成器中的每个项目替换为 1 并对值求和。

此解决方案不需要我们将生成器转换为列表,并且可能会减少内存消耗。

但是,除非我们处理具有数百万个项目的生成器,否则性能差异可以忽略不计。

这种方法也会耗尽生成器,因为没有迭代就无法获得生成器的长度。

确保我们没有尝试获取无限生成器的长度,因为该操作永远不会完成。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中的 Pandas 插入方法

发布时间:2024/04/23 浏览次数:112 分类:Python

本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。

Pandas 重命名多个列

发布时间:2024/04/22 浏览次数:199 分类:Python

本教程演示了如何使用 Pandas 重命名数据框中的多个列。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便