A missing iterator on itertools module?

2024-03-28 Thread ast via Python-list

Hello

Suppose I have these 3 strings:

s1 = "AZERTY"
s2 = "QSDFGH"
s3 = "WXCVBN"

and I need an itertor who delivers

A Q W Z S C E D C ...

I didn't found anything in itertools to do the job.

So I came up with this solution:


list(chain.from_iterable(zip("AZERTY", "QSDFGH", "WXCVBN")))

['A', 'Q', 'W', 'Z', 'S', 'X', 'E', 'D', 'C', 'R', 'F', 'V', 'T', 'G', 
'B', 'Y', 'H', 'N']


Do you havbe a neat solution ?
--
https://mail.python.org/mailman/listinfo/python-list


Re: A missing iterator on itertools module?

2024-03-28 Thread ast via Python-list

Le 28/03/2024 à 17:45, ast a écrit :


A Q W Z S C E D C ...


sorry
A Q W Z S X E D C


--
https://mail.python.org/mailman/listinfo/python-list


Re: A missing iterator on itertools module?

2024-03-28 Thread ast via Python-list

Le 28/03/2024 à 18:07, Stefan Ram a écrit :

ast  wrote or quoted:

s1 = "AZERTY"
s2 = "QSDFGH"
s3 = "WXCVBN"
and I need an itertor who delivers
A Q W Z S C E D C ...
I didn't found anything in itertools to do the job.
So I came up with this solution:
list(chain.from_iterable(zip("AZERTY", "QSDFGH", "WXCVBN")))


   Maybe you meant "zip(s1,s2,s3)" as the definition of s1, s2,
   and s3 otherwise would not be required. Also the "list" is not
   necessary because "chain.from_iterable" already is an iterable.
   You could also use "*" instead of "list" to print it. So,

import itertools as _itertools
s =[ "AZERTY", "QSDFGH", "WXCVBN" ]
print( *_itertools.chain.from_iterable( zip( *s )))

   . But these are only minor nitpicks; you have found a nice solution!


Why did you renamed itertools as _itertools ?
--
https://mail.python.org/mailman/listinfo/python-list