On 7/14/2013 1:10 PM, Joseph L. Casale 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]
The order of the tuples in not deterministic unless you sort, so if
everything is hashable, a set may be better.
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?
When posting code, it is a good idea to includes the expected or desired
answer in code as well as text.
pairs = {(k, x) for k, v in my_dict.items() for x in v or [None]}
assert pairs == {('key_a', 'val_a'), ('key_a', 'val_b'),
('key_b', 'val_c'), ('key_c', None)}
--
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list