dict()和{}有什么区别?
假设我要制作字典。我们称之为d
。但是有多种方法可以在Python中初始化字典!例如,我可以这样做:
d = {'hash': 'bang', 'slash': 'dot'}
或者我可以这样做:
d = dict(hash='bang', slash='dot')
或奇怪的是:
d = dict({'hash': 'bang', 'slash': 'dot'})
或这个:
d = dict([['hash', 'bang'], ['slash', 'dot']])
以及带有dict()
功能的其他多种方式。因此,显然dict()
可以提供的一件事就是语法和初始化的灵活性。但这不是我要问的。
假设我d
只是做一个空字典。发生的事情Python解释器的幕后当我这样做d = {}
对d =
dict()
?是做同一件事的两种简单方法吗?使用是否{}
有的 附加
通话dict()
?一个是否比另一个具有(甚至可以忽略)的开销?虽然这个问题确实完全不重要,但我很想回答这个问题。
-
>>> def f(): ... return {'a' : 1, 'b' : 2} ... >>> def g(): ... return dict(a=1, b=2) ... >>> g() {'a': 1, 'b': 2} >>> f() {'a': 1, 'b': 2} >>> import dis >>> dis.dis(f) 2 0 BUILD_MAP 0 3 DUP_TOP 4 LOAD_CONST 1 ('a') 7 LOAD_CONST 2 (1) 10 ROT_THREE 11 STORE_SUBSCR 12 DUP_TOP 13 LOAD_CONST 3 ('b') 16 LOAD_CONST 4 (2) 19 ROT_THREE 20 STORE_SUBSCR 21 RETURN_VALUE >>> dis.dis(g) 2 0 LOAD_GLOBAL 0 (dict) 3 LOAD_CONST 1 ('a') 6 LOAD_CONST 2 (1) 9 LOAD_CONST 3 ('b') 12 LOAD_CONST 4 (2) 15 CALL_FUNCTION 512 18 RETURN_VALUE
dict()显然是一些内置的C。一个真正聪明或专心的人(不是我)可以查看口译员的资料并告诉您更多信息。我只是想炫耀dis.dis。:)