Помогите пожалуйста с задачами на пайтон
1.написать свои функции:
zip
filter
reduce
2.Написать свои функции используя генераторы:
map()
filter()
Ответы
from functools import add
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
def my_zip(*iterables):
sentinel = object()
iterators = [iter(it) for it in iterables]
while iterators:
result = []
for it in iterators:
elem = next(it, sentinel)
if elem is sentinel:
return
result.append(elem)
yield tuple(result)
мa = [1, 2, 3]
for x, y, z in my_zip(a, b, c):
print(x, y, z)
def my_filter(func, iterable):
for x in iterable:
if func(x):
yield x
def is_even(x):
return x % 2 == 0
a = [1, 2, 3, 4, 5, 6]
for x in my_filter(is_even, a):
print(x)
def my_reduce(func, iterable, initializer=None):
it = iter(iterable)
if initializer is None:
value = next(it)
else:
value = initializer
for x in it:
value = func(value, x)
return value
def my_map(func, iterable):
for x in iterable:
yield func(x)
a = [1, 2, 3, 4, 5]
for x in my_map(lambda x: x * 2, a):
print(x)
def my_filter(func, iterable):
return (x for x in iterable if func(x))
a = [1, 2, 3, 4, 5]
print(my_reduce(add, a))
def is_even(x):
return x % 2 == 0
a = [1, 2, 3, 4, 5, 6]
for x in my_filter(is_even, a):
print(x)
ток тут напиши итераторы разные и все функции включи