6

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

4

4 回答 4

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)
于 2012-06-14T10:41:34.897 回答
5

我将在这里逆流而上:

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

  • 在某些情况下看起来不那么杂乱
  • 每个键值对少 3 个字符
  • 在难以打字的键盘布局上{(此处为 AltGr-7 和 AltGr-0),打字速度更快}
于 2012-06-14T10:59:57.827 回答
2

当然,使用 {},保持代码简单和少输入始终是我的目标

于 2012-06-14T10:32:31.973 回答
1

大括号 { } 有一些歧义。考虑:

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

set()而使用or没有歧义dict()

于 2012-06-14T12:32:38.117 回答