вывод lambda функции в комбинации с map

Есть код:

nums = [6, 63, 10, 27, 10, 4, 7]
ost = [3, 7, 9]
ostatok = list(map(lambda pair: pair[0] % pair[1], [(n, o) for n in nums for o in ost]))
result = list(map(lambda x: (f"\nчисло {nums[y]} делится на {ost}" for y in range(len(nums))) if x == 0 else "", [(n) for n in ostatok]))
print(result)

вывод:

[<generator object <lambda>.<locals>.<genexpr> at 0x000002526011E180>, '', '', <generator object <lambda>.<locals>.<genexpr> at 
0x000002526011DF50>, <generator object <lambda>.<locals>.<genexpr> at 0x000002526011DEE0>, <generator object <lambda>.<locals>.<genexpr> at 0x000002526011DFC0>, '', '', '', <generator object <lambda>.<locals>.<genexpr> at 0x000002526011E0A0>, '', <generator object <lambda>.<locals>.<genexpr> at 0x000002526011C510>, '', '', '', '', '', '', '', <generator object <lambda>.<locals>.<genexpr> at 0x000002526011E2D0>, '']

должен выводить что-то по типу:

число 6 делится на 3
число 63 делится на 7

и т.д.


Ответы (1 шт):

Автор решения: Amgarak

Что-то вы перемудрили, можно всё проще сделать:

from itertools import product

nums = [6, 63, 10, 27, 10, 4, 7]
ost = [3, 7, 9]

result = [f"число {n} делится на {o}" for n, o in product(nums, ost) if n % o == 0]
print("\n".join(result))

Вывод:

число 6 делится на 3
число 63 делится на 3
число 63 делится на 7
число 63 делится на 9
число 27 делится на 3
число 27 делится на 9
число 7 делится на 7

Без использования библиотек?‍♀️

result = [f"число {n} делится на {o}" for n in nums for o in ost if n % o == 0]
→ Ссылка