Python: create dictionary using dict() with integer keys?

PythonDictionaryIntegerKey

Python Problem Overview


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?

Python Solutions


Solution 1 - Python

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

Solution 2 - Python

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}

Solution 3 - Python

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSindyrView Question on Stackoverflow
Solution 1 - PythonBrenBarnView Answer on Stackoverflow
Solution 2 - PythonAivar PaalbergView Answer on Stackoverflow
Solution 3 - PythonMalavan SatkunarajahView Answer on Stackoverflow