All permutations from 2 lists
gene heskett
gheskett at shentel.net
Wed Mar 2 21:04:00 EST 2022
On Wednesday, 2 March 2022 10:49:11 EST Larry Martell wrote:
> On Wed, Mar 2, 2022 at 10:26 AM Antoon Pardon <antoon.pardon at vub.be>
wrote:
> > Op 2/03/2022 om 15:58 schreef Larry Martell:
> > > On Wed, Mar 2, 2022 at 9:37 AM Antoon Pardon<antoon.pardon at vub.be>
wrote:
> > >>>>> 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.> >
> > > I need to know what items are in which position. If sometimes the
> > > regions are in one index and sometimes in another will not work for
> > > me.
> >
> > I am starting to suspect you didn't think this through. What you are
> > telling here contradicts what you told earlier that if either list
> > was empty, you just wanted the other list. Because then you wouldn't
> > know what items were in that list.
> >
> > The only solution I can see now is that if a list is empty, you
> > either add [None] or [""] to the permutation_elements (whatever
> > suits you better) and then use itertools.product
>
> I found a way to pass this directly into the query:
>
> def query_lfixer(query):
> for k, v in query.items():
> if type(v)==list:
> query[k] = {"$in": v}
> return query
>
> self._db_conn[collection_name].find(query_lfixer(query))
I take it back, kmail5 had decided it was a different thread. My bad, no
biscuit.
Cheers, Gene Heskett.
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author, 1940)
If we desire respect for the law, we must first make the law respectable.
- Louis D. Brandeis
Genes Web page <http://geneslinuxbox.net:6309/gene>
More information about the Python-list
mailing list