On Wednesday, 2 March 2022 10:49:11 EST Larry Martell wrote: > On Wed, Mar 2, 2022 at 10:26 AM Antoon Pardon <antoon.par...@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.par...@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> -- https://mail.python.org/mailman/listinfo/python-list