Generator comprehensions
ฟังก์ชัน generator ต่อไปนี้ถูกกำหนดไว้แล้ว (ทดสอบได้ใน console):
def func1(n):
for i in range(0, n):
yield i**2
def func2(n):
for i in range(0, n):
if i%2 == 0:
yield 2*i
def func3(n, m):
for i in func1(n):
for j in func2(m):
yield ((i, j), i + j)
สังเกตว่า func3() เรียกใช้ func1() และ func2() ภายใน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Rewrite func1() as a generator comprehension
gen = ____
for item in zip(gen, func1(10)):
print(item)