Python:如何使用dict()创建具有整数键的字典?

79

在Python中,我看到人们像这样创建字典:

d = dict( one = 1, two = 2, three = 3 )

如果我的键是整数,那怎么办?当我尝试这样做时:

d = dict (1 = 1, 2 = 2, 3 = 3 )

我遇到了一个错误。当然,我可以这样做:

d = { 1:1, 2:2, 3:3 }

这个方法运行良好,但我的主要问题是:是否有办法使用dict()函数/构造函数设置整数键?

3个回答

93

是的,但不能使用那个版本的构造函数。你可以这样做:

>>> dict([(1, 2), (3, 4)])
{1: 2, 3: 4}

有几种不同的方法可以创建字典。正如所述,"仅为有效的Python标识符提供关键字参数[...] 可以起作用。"


2
这就是我担心的。有一种简单而视觉上令人愉悦的方法可以创建一个字典 d = dict(one=1, two=2),但如果你的键不是有效的Python标识符,那么你就被迫使用看起来不太简单的语法。:( - Sindyr
14
有一个简单而吸引人的方法。它是 {1:2, 3:4} - BrenBarn
是的,在我的主要示例中我已经有了那个,我只是觉得1 = 1的等式语法更加如此。 - Sindyr
10
@Sindyr,我不觉得1 = 2这种形式的赋值有任何意义或吸引力。 - Alexey
5
当然可以。你只需要使用 my_dict[1] = "whatever" 即可。 - BrenBarn
显示剩余3条评论

15

还有这些“方法”:

>>> 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}

嗨,我不知道fromkeys类方法。这很有用!事实上,就在今天,我正在处理一个多源合并的问题,我正在迭代来自多个源的键集,因为它们都可以具有不同的项,但是这些键是字典和对象,它们解析为特定类的实例。感谢@aivar-paalberg! - Sam Hughes

-4
a = dict(one=1, two=2, three=3)

在这个例子中提供关键字参数仅适用于有效的Python标识符。否则,可以使用任何有效的键。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接