Помогите пожалуйста с задачами на пайтон

1.написать свои функции:
zip
filter
reduce

2.Написать свои функции используя генераторы:
map()
filter()

Ответы

Ответ дал: keesermudryj
1

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)

ток тут напиши итераторы разные и все функции включи

Вас заинтересует