在使用字符串键构造字典时,我应该在Python中编写dict或{}吗?

时间:2012-06-14 10:17:33

标签: python coding-style

这只是一个关于你建议的惯例的微不足道的问题。最近,我看到很多人写dict(key1=val1, key2=val2)而不是我认为更惯用{"key1": val1, "key2": val2}的例子。我认为原因是避免使用""作为密钥,但我不确定。也许dict() - 语法看起来更接近其他语言?

4 个答案:

答案 0 :(得分:8)

{"key1": val1, "key2": val2}更具惯用性;我几乎没有遇到过带有关键字参数的dict,我当然也没想过要写它。它也更通用,因为关键字参数必须是Python标识符:

>>> {"foo bar": 1}
{'foo bar': 1}
>>> dict(foo bar=1)
------------------------------------------------------------
   File "<ipython console>", line 1
     dict(foo bar=1)
                ^
SyntaxError: invalid syntax

>>> dict("foo bar"=1)
------------------------------------------------------------
   File "<ipython console>", line 1
SyntaxError: keyword can't be an expression (<ipython console>, line 1)

答案 1 :(得分:5)

我要反对这里的流程:

如果适合您,请使用dict()方法,但请记住其他答案中列出的限制。这种方法有一些优点:

  • 在某些情况下看起来不那么混乱
  • 每个键值对减少3个字符
  • {}难以输入的键盘布局上(此处为AltGr-7和AltGr-0)输出更快

答案 2 :(得分:2)

当然,使用{},保持代码简单&amp;少打字总是我的目标

答案 3 :(得分:1)

括号{}存在一些含糊之处。考虑:

>>> x = {'one','two','three'}
>>> type(x)
<type 'set'>
>>> x = {}
>>> type(x)
<type 'dict'>

使用set()dict()时没有歧义。