İçeriğe geç

Verimsiz üyelik testi (ARCH2075)

Anahtar python.performance.inefficient-membership-test · Önem info · Kategori performance

Bir liste üzerinde in kontrolü O(n) maliyetlidir; özellikle döngü içinde tekrarlandığında yavaştır. Aranan koleksiyonu kümeye dönüştürerek O(1) arama elde edin.

def filter_allowed(items, allowed):
allowed = ["read", "write", "admin", "audit"]
return [i for i in items if i.role in allowed]
def filter_allowed(items):
allowed = {"read", "write", "admin", "audit"}
return [i for i in items if i.role in allowed]

Tekrarlı üyelik kontrolü yapılan listeyi set olarak tanımlayın.