Op 2/03/2022 om 15:29 schreef Larry Martell:
On Wed, Mar 2, 2022 at 9:10 AM Antoon Pardon<antoon.par...@vub.be>  wrote:
Op 2/03/2022 om 14:44 schreef Larry Martell:
On Wed, Mar 2, 2022 at 8:37 AM Antoon Pardon<antoon.par...@vub.be>   wrote:
Op 2/03/2022 om 14:27 schreef Larry Martell:
On Tue, Mar 1, 2022 at 7:21 PM<2qdxy4rzwzuui...@potatochowder.com>    wrote:
On 2022-03-01 at 19:12:10 -0500,
Larry Martell<larry.mart...@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.
How about the following: Keep a list of your lists you want to permute over.
Like the following:

permutation_elements = [["Linux","Windows"],["us-east-1", "us-east-2"]]

permutation = itertools.product(*permutation_elements)

If you don't include the empty list, you will get more or less what you
seem to want.
But I need to deal with that case.

What does that mean? How does using the above method to produce the permutations
you want, prevent you from dealing with an empty list however you want when you
encounter them? Just don't add them to the permutation_elements.

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

Reply via email to