dict()和{}有什么区别?

发布于 2021-01-29 17:07:25

假设我要制作字典。我们称之为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()?一个是否比另一个具有(甚至可以忽略)的开销?虽然这个问题确实完全不重要,但我很想回答这个问题。

关注者
0
被浏览
200
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    >>> 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。:)



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看