4️⃣ نکات ریز و ترفندهای حرفهای
🔸 استفاده از ()next:
برای گرفتن مقدار بعدی ژنراتور:
gen = (x**2 for x in range(3))
print(next(gen)) # Khoroji: 0
print(next(gen)) # Khoroji: 1
print(next(gen)) # Khoroji: 4
🔸 مدیریت خطای StopIteration:
try:
gen = (x for x in range(2))
print(next(gen))
print(next(gen))
print(next(gen))
except StopIteration:
print("Generator tamoom shod! 🚫")
🔸 ترکیب با ()range:
evens_gen = (x for x in range(0, 10, 2))
print(list(evens_gen)) # Khoroji: [0, 2, 4, 6, 8]
🔸 ژنراتورهای تودرتو با yield from:
def nested_generator():
yield from [1, 2, 3]
yield from [4, 5, 6]
for num in nested_generator():
print(num)
# Khoroji: 1, 2, 3, 4, 5, 6
🔸 استفاده تو pipeline داده:
برای فیلتر کردن یا تبدیل دادهها بهصورت زنجیرهای:
def filter_evens():
for num in range(10):
if num % 2 == 0:
yield num
for num in filter_evens():
print(f"Zoj: {num}")
# Khoroji: Zoj: 0, Zoj: 2, Zoj: 4, Zoj: 6, Zoj: 8
💯 @PythonForYou 🧑💻👩💻