Python生成器函数允许你创建一种特殊类型的函数,这种函数将值生成器作为输入并返回一个迭代器,而不是直接返回值。生成器函数允许你将多个值转换为一系列可迭代的对象,这样可以更有效地处理和序列化数据。下面是Python生成器函数的一些示例:
def generate_integers():
for i in range(10):
yield i
generator = generate_integers()
for _ in range(10):
print(next(generator))
def generate_even_numbers():
for i in range(2, 100):
if i % 2 == 0:
yield i
generator = generate_even_numbers()
for _ in range(10):
print(next(generator))
def generate_positive_numbers():
for i in range(1, 100):
if i > 0:
yield i
generator = generate_positive_numbers()
for _ in range(10):
print(next(generator))
def generate_primes():
primes = [True] * 10000000000000 # 设置 prime bit
for i in range(2, int(10**9) // 2 + 1):
if primes[i]:
current_number = i
while current_number * current_number <= 10**9:
primes[current_number * current_number] = False
if primes[current_number % current_number * current_number]:
continue
current_number += 1
for i in primes:
if i:
yield i
generator = generate_primes()
for _ in range(100):
print(next(generator))
以上每个生成器函数示例都可以被用于序列化和处理一系列值,比使用多个值范围调用for x in range(10)
更高效。这些生成器函数可以与其他Python内置函数一起使用,例如for
循环和next
函数。
云+社区技术沙龙[第22期]
云+社区技术沙龙[第14期]
小程序·云开发官方直播课(数据库方向)
T-Day
云+社区技术沙龙[第1期]
开箱吧腾讯云
开箱吧腾讯云
云+社区技术沙龙[第27期]
serverless days
技术创作101训练营
Techo Day 第二期
领取专属 10元无门槛券
手把手带您无忧上云