2024-04-25 22:58:26 发布
网友
我正在努力学习Python,并密切关注通用的编码标准。这似乎是一个毫无意义的挑剔问题,但我正在努力集中于最佳实践,因为我学到了,所以我不必忘记任何'坏'习惯。
我看到初始化dict的两种常用方法:
a = { 'a': 'value', 'another': 'value', } b = dict( a='value', another='value', )
哪一个被认为是“更Python”?你用哪一种?为什么?
首选第一个版本:
{1: 'one', 2: 'two'}
速度更快:
$ python -m timeit "dict(a='value', another='value')" 1000000 loops, best of 3: 0.79 usec per loop $ python -m timeit "{'a': 'value','another': 'value'}" 1000000 loops, best of 3: 0.305 usec per loop
花括号。将关键字参数传递到dict()中,虽然它在许多情况下都很好地工作,但只有当关键字是有效的Python标识符时,才能初始化映射。
dict()
a = {'import': 'trade', 1: 7.8}
a = dict({'import': 'trade', 1: 7.8})
a = dict(import='trade', 1=7.8) >> SyntaxError: invalid syntax ^
第一个,花括号。否则,您会遇到密钥中包含奇数字符的一致性问题,例如=。
=
# Works fine. a = { 'a': 'value', 'b=c': 'value', } # Eeep! Breaks if trying to be consistent. b = dict( a='value', b=c='value', )
首选第一个版本:
{1: 'one', 2: 'two'}
。第二个变量只适用于(某些)字符串键。根据键的类型使用不同的语法将是不必要的不一致。速度更快:
花括号。将关键字参数传递到
dict()
中,虽然它在许多情况下都很好地工作,但只有当关键字是有效的Python标识符时,才能初始化映射。这是有效的:
这行不通:
第一个,花括号。否则,您会遇到密钥中包含奇数字符的一致性问题,例如
=
。相关问题 更多 >
编程相关推荐