Junior — Middle
Aký je rozdiel medzi filtrom a odloženým spracovaním v programovaní?
sobes.tech AI
Odpoveď od AI
Filtrovanie a odložené spracovanie sú odlišné koncepty:
-
Filter: je operácia, ktorá okamžite aplikuje podmienku na údaje a vráti iba tie prvky, ktoré túto podmienku spĺňajú. Napríklad v Pythone
filter()vracia iterátor s filtrovanými prvkami. -
Odložené spracovanie (lenivé hodnotenie): je situácia, keď sa výpočty nevykonávajú okamžite, ale odkladajú sa, kým naozaj nie sú potrebné. Napríklad generátory v Pythone vytvárajú prvky jeden po druhom počas iterácie, nie všetky naraz.
Príklad:
# Filter s lenivým hodnotením
nums = range(10)
filtered = filter(lambda x: x % 2 == 0, nums) # filter vracia iterátor
for num in filtered:
print(num) # prvky sa počítajú a vypisujú počas iterácie
Tu filter a lenivosť spolupracujú: filter stanoví podmienku, a generátor/iterátor zabezpečuje odložené spracovanie.