gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:45:22 24 4
gpt4 key购买 nike

假设我想制作一本字典。我们称之为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() 提供的东西之一是语法和初始化的灵 active 。但这不是我要问的。

假设我要让 d 只是一个空字典。当我执行 d = {}d = dict() 时,Python 解释器的幕后发生了什么?只是做同一件事的两种方法吗?使用 {}additional 调用 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。 :)

关于python - dict() 和 {} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/664118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com