def cache_deco(func):
cache = {}
def wrapper(*args):
if args in cache:
return cache[args]
result = func(*args)
cache[args] = result
return result
return wrapper
def solution(func_map, func_filter, data):
filtered_data = filter(func_filter, data)
mapped_data = map(func_map, filtered_data)
for i, data in enumerate(mapped_data):
if i % 2 == 0:
yield data
def calc():
count = 0
@cache_deco
def calc_(x):
nonlocal count
count += 1
print("Call:", count)
return x
return calc_
for i in solution(calc(), lambda x: x % 2 == 1, (1, 1, 2, 2, 2, 3, 1, 2, 3, 1)):
print(i)
python -m tgnize
.run('clear')
не будет работать на винде.
Попробуй код отсюда