What#39;s the difference between dict() and {}?(dict() 和 {} 有什么区别?)
问题描述
假设我想制作一本字典.我们称之为d
.但是有多种方法可以在 Python 中初始化字典!例如,我可以这样做:
So let's say I wanna make a dictionary. We'll call it d
. But there are multiple ways to initialize a dictionary in Python! For example, I could do this:
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()
提供的东西之一是语法和初始化的灵活性.但这不是我要问的.
And a whole other multitude of ways with the dict()
function. So obviously one of the things dict()
provides is flexibility in syntax and initialization. But that's not what I'm asking about.
假设我要让 d
只是一个空字典.当我执行 d = {}
与 d = dict()
时,Python 解释器的幕后发生了什么?只是做同一件事的两种方法吗?使用 {}
有 additional 调用 dict()
吗?一个有(甚至可以忽略不计)比另一个更多的开销?虽然这个问题真的完全不重要,但我很想回答这个问题.
Say I were to make d
just an empty dictionary. What goes on behind the scenes of the Python interpreter when I do d = {}
versus d = dict()
? Is it simply two ways to do the same thing? Does using {}
have the additional call of dict()
? Does one have (even negligible) more overhead than the other? While the question is really completely unimportant, it's a curiosity I would love to have answered.
推荐答案
>>> 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.:)
dict() is apparently some C built-in. A really smart or dedicated person (not me) could look at the interpreter source and tell you more. I just wanted to show off dis.dis. :)
这篇关于dict() 和 {} 有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:dict() 和 {} 有什么区别?
基础教程推荐
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 筛选NumPy数组 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01