On 22/05/24 07:14, HenHanna via Python-list wrote:

How can i write this function Cprod (Cartesian Product) simply?

                 (writing this out: itertools.product([0, 1], repeat=N )

The value can be a list or a Tuple.

                 cprod([0, 1], 1) => ((0) (1))

                 cprod([0, 1], 2) => ((0,0) (0,1) (1,0) (1,1))



This works:

    def cprod(x, c):
         if c==1: return [[i] for i in x]
         Sub= cprod(x, c-1)
         return [i  for F in x   for i in [[F]+R for R in Sub]]


---------- Is there another way to write [F]+R ???

                Other ways to improve it?

https://python.readthedocs.io/en/stable/library/itertools.html#itertools.product

--
Regards,
=dn
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to