Python Jeneratörleri — süper verimli kodlar yazın!

Jan 19 2023
Python üreteçleri, tüm diziyi bellekte depolamak zorunda kalmadan bir dizi değer üzerinde yineleme yapmanızı sağlayan özel bir işlev türüdür. Büyük veri kümeleriyle çalışmak veya sonsuz değer dizileri oluşturmak için güçlü bir araçtır.

Python üreteçleri, tüm diziyi bellekte depolamak zorunda kalmadan bir dizi değer üzerinde yineleme yapmanızı sağlayan özel bir işlev türüdür. Büyük veri kümeleriyle çalışmak veya sonsuz değer dizileri oluşturmak için güçlü bir araçtır.

Normal bir işlevden farkı nedir?

Bir oluşturucu işlevi, normal bir işlev gibi tanımlanır, ancak dönüş anahtar sözcüğünü kullanmak yerine, verim anahtar sözcüğünü kullanır. Bir oluşturucu işlevi çağrıldığında, işlev tarafından oluşturulan değerler üzerinde yineleme yapmak için kullanılabilecek bir yineleyici nesnesi döndürür.

Jeneratörleri neden kullanmalı?

Jeneratörlerin ana avantajlarından biri, bellek verimli olmalarıdır. Her seferinde yalnızca bir değer ürettikleri için, çok fazla bellek tüketmeden büyük veri kümelerini veya sonsuz dizileri işleyebilirler.

Jeneratörlerin bir diğer avantajı da tembel olmalarıdır. Bu, tüm değerleri önceden oluşturmak yerine yalnızca ihtiyaç duyuldukça değerler ürettikleri anlamına gelir. Bu, büyük veri kümeleriyle çalışmak veya sonsuz diziler oluşturmak için yararlı olabilir.

Tamam.. nasıl kullanılır?

Aşağıdaki oluşturucu işlevi, Fibonacci dizisini oluşturur:

def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

fib = fibonacci()
print(next(fib)) # 0
print(next(fib)) # 1
print(next(fib)) # 1
print(next(fib)) # 2

for number in fibonacci():
    if number > 100:
        break
    print(number)

Jeneratörler, güçlü ve anlamlı kod oluşturmak için liste kavrayışları veya itertools modülü gibi diğer Python özellikleriyle birlikte de kullanılabilir. Kendiniz deneyebilirsiniz!

İyi şanslar Şilo