【发布时间】:2011-09-30 10:28:18
【问题描述】:
使用 PyCharm,我注意到它可以转换 dict 文字:
d = {
'one': '1',
'two': '2',
}
进入 dict 构造函数:
d = dict(one='1', two='2')
这些不同的方法在某些方面是否存在显着差异?
(在写这个问题时,我注意到使用dict() 似乎无法指定数字键.. d = {1: 'one', 2: 'two'} 是可能的,但显然dict(1='one' ...) 不是。还有什么?)
【问题讨论】:
-
dict()采用键值对列表并允许命名参数,因此它可以用于创建任何类型的字典,而不是使用您使用的语法。 pyCharm 中存在一个错误 (youtrack.jetbrains.net/issue/PY-2512) 也可能毫无价值,特别是因为您发现了什么,该错误已得到修复。 -
相关:stackoverflow.com/questions/5790860/…(总结:PyCharm的行为更慢更丑)
-
显然 CPython 2.7 dict() 更慢(慢 6 倍?)。请参阅:doughellmann.com/2012/11/… 无论如何,我开始更喜欢构造函数语法,因为我发现在字典和函数调用之间键入和移动代码更容易。
-
不要忘记空格:您不能使用第二种方式创建包含空格的键。但是,第一种方法可以使用任何字符串,它不会在意。当然,这同样适用于 Unicode。
-
在 Python 2 中,
dict(abc = 123)构造函数生成一个带有字节字符串键'abc'的字典,如果您使用unicode_literals并期望字典键是 unicodeu'abc',这可能会令人惊讶.见stackoverflow.com/questions/20357210/…。
标签: python dictionary pycharm