All permutations from 2 lists

Joel Goldstick joel.goldstick at gmail.com
Wed Mar 2 08:53:33 EST 2022


On Wed, Mar 2, 2022 at 8:46 AM Larry Martell <larry.martell at gmail.com> wrote:
>
> On Wed, Mar 2, 2022 at 8:37 AM Antoon Pardon <antoon.pardon at vub.be> wrote:
> >
> >
> > Op 2/03/2022 om 14:27 schreef Larry Martell:
> > > On Tue, Mar 1, 2022 at 7:21 PM<2QdxY4RzWzUUiLuE at potatochowder.com>  wrote:
> > >> On 2022-03-01 at 19:12:10 -0500,
> > >> Larry Martell<larry.martell at gmail.com>  wrote:
> > >>
> > >>> If I have 2 lists, e.g.:
> > >>>
> > >>> os = ["Linux","Windows"]
> > >>> region = ["us-east-1", "us-east-2"]
> > >>>
> > >>> How can I get a list of tuples with all possible permutations?
> > >>>
> > >>> So for this example I'd want:
> > >>>
> > >>> [("Linux", "us-east-1"), ("Linux", "us-east-2"), ("Windows",
> > >>> "us-east-1"), "Windows", "us-east-2')]
> > >>>
> > >>> The lists can be different lengths or can be 0 length. Tried a few
> > >>> different things with itertools but have not got just what I need.
> > >> [(o, r) for o in os for r in region]
> > > This does not work if region = []. I wrote in my question that either
> > > list could be empty.
> >
> > What do you mean it doesn't work? The result seems to be an empty list,
> > which IMO is a perfectly valid result.
> >
> > All possible permutations over two collections where one collection is
> > empty, should IMO give you an empty collection.
>
> If one list is empty I want just the other list. What I am doing is
> building a list to pass to a mongodb query. If region is empty then I
> want to query for just the items in the os list. I guess I can test
> for the lists being empty, but I'd like a solution that handles that
> as down the road there could be more than just 2 lists.
> --
> https://mail.python.org/mailman/listinfo/python-list

Does this help you out:

>>> [(o,r) for o in opsys for r in region or "x"]
[('Linux', 'x'), ('Window', 'x')]


-- 
Joel Goldstick


More information about the Python-list mailing list