Junior — Middle
Каква е разликата между филтър и отложена обработка в програмирането?
sobes.tech AI
Отговор от AI
Филтърът и отложената обработка са различни концепции:
-
Филтър: това е операция, която незабавно прилага условие към данните и връща само онези елементи, които отговарят на това условие. Например, в Python
filter()връща итератор с филтрираните елементи. -
Отложена обработка (лениво оценяване): това е когато изчисленията не се изпълняват веднага, а се отлагат до момента, когато резултатът наистина е необходим. Например, генераторите в Python създават елементи един по един по време на итерацията, а не всички наведнъж.
Пример:
# Филтър с лениво оценяване
nums = range(10)
filtered = filter(lambda x: x % 2 == 0, nums) # filter връща итератор
for num in filtered:
print(num) # елементите се изчисляват и се извеждат при итерация
Тук филтърът и ленивостта работят заедно: филтърът задава условието, а генераторът/итераторът осигурява отложената обработка.