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."

8

There 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} 
1
a = 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.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy