On Mon, Jul 15, 2013 at 3:10 AM, Joseph L. Casale <jcas...@activenetwerx.com> wrote: > I have a dict of lists. I need to create a list of 2 tuples, where each tuple > is a key from > the dict with one of the keys list items. > > my_dict = { > 'key_a': ['val_a', 'val_b'], > 'key_b': ['val_c'], > 'key_c': [] > } > [(k, x) for k, v in my_dict.items() for x in v] > > This works, but I need to test for an empty v like the last key, and create > one tuple ('key_c', None). > Anyone know the trick to reorganize this to accept the test for an empty v > and add the else?
Yeah, it's remarkably easy too! Try this: [(k, x) for k, v in my_dict.items() for x in v or [None]] An empty list counts as false, so the 'or' will then take the second option, and iterate over the one-item list with None in it. Have fun! ChrisA -- http://mail.python.org/mailman/listinfo/python-list