In Python, I see people creating dictionaries like this:
d = dict( one = 1, two = 2, three = 3 ) What if my keys are integers? When I try this:
d = dict (1 = 1, 2 = 2, 3 = 3 ) I get an error. Of course I could do this:
d = { 1:1, 2:2, 3:3 } which works fine, but my main question is this: is there a way to set integer keys using the dict() function/constructor?
3 Answers
Yes, but not with that version of the constructor. You can do this:
>>> dict([(1, 2), (3, 4)]) {1: 2, 3: 4} There are several different ways to make a dict. As documented, "providing keyword arguments [...] only works for keys that are valid Python identifiers."
8There are also these 'ways':
>>> dict.fromkeys(range(1, 4)) {1: None, 2: None, 3: None} >>> dict(zip(range(1, 4), range(1, 4))) {1: 1, 2: 2, 3: 3} 1a = dict(one=1, two=2, three=3) Providing keyword arguments as in this example only works for keys that are valid Python identifiers. Otherwise, any valid keys can be used.