“Pythonのジェネレーターは要素の数をどのように取得しますか?”
Pythonのジェネレータは、特別なイテレータであり、必要に応じて値を生成することができますが、すべての値を一度に生成しません。そのため、ジェネレータオブジェクトには固定の要素数がありません。それらは必要に応じて生成されるからです。
生成器オブジェクトの要素の数を取得したい場合は、次のいくつかの方法を使用できます。
- 合計()
- 合計()
gen = (x for x in range(10)) # 示例生成器对象
count = sum(1 for _ in gen)
print(count) # 输出结果为 10
- 長さ()
- リスト()
- 長さ()
gen = (x for x in range(10)) # 示例生成器对象
count = len(list(gen))
print(count) # 输出结果为 10
- 「~のために」
- 次の()
gen = (x for x in range(10)) # 示例生成器对象
count = 0
for _ in gen:
count += 1
print(count) # 输出结果为 10
gen = (x for x in range(10)) # 示例生成器对象
count = 0
while True:
try:
_ = next(gen)
count += 1
except StopIteration:
break
print(count) # 输出结果为 10
生成器オブジェクトを一度すべてイテレートすると、再びイテレートすることはできませんので、要素の数を取得した後、生成器オブジェクトは空になります。生成器オブジェクトを複数回イテレートする必要がある場合は、リストなどの他のデータ構造を使用することを検討してください。