/ Published in: Python
Although Python doesn't have built-in dictionary comprehensions, you can do something pretty close with little mess or code. Just use .iteritems() to turn your dict into a list, throw it in a generator expression (or list comprehension), and then cast that list back into a dict.
For example, say I have a dictionary of name:email pairs, and I want to create a dictionary of name:is_email_at_a_dot_com pairs:
For example, say I have a dictionary of name:email pairs, and I want to create a dictionary of name:is_email_at_a_dot_com pairs:
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
email_at_dotcom = dict( [name, '.com' in email] for name, email in emails.iteritems() ) # email_at_dotcom now is {'Dick': True, 'Jane': True, 'Stou': False} # ANOTHER OPTION TO CREATE DICTS ON THE FLY: d = dict([("n= %s" % x, x) for x in range(10)]) # {'n= 9': 9, 'n= 8': 8, 'n= 3': 3, 'n= 2': 2, 'n= 1': 1, 'n= 0': 0, 'n= 7': 7, 'n= 6': 6, 'n= 5': 5, 'n= 4': 4}