首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >初始化dict的首选语法是什么:花括号文字{}或dict()函数?

初始化dict的首选语法是什么:花括号文字{}或dict()函数?
EN

Stack Overflow用户
提问于 2010-05-18 07:37:08
回答 5查看 399.1K关注 0票数 246

我正在努力学习Python,并密切关注常见的编码标准。这可能看起来像是一个毫无意义的吹毛求疵的问题,但我正试图在学习的过程中专注于最佳实践,这样我就不必在以后改掉任何“坏”习惯。

我看到了两种常用的初始化dict的方法:

代码语言:javascript
复制
a = {
    'a': 'value',
    'another': 'value',
}

b = dict( 
    a='value',
    another='value',
)

哪一个被认为是“更多的蟒蛇”?你用哪一种?为什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-05-18 07:48:52

大括号。将关键字参数传递到dict()中,尽管它在许多场景中都能很好地工作,但只有在键是有效的Python标识符时才能初始化映射。

这是可行的:

代码语言:javascript
复制
a = {'import': 'trade', 1: 7.8}
代码语言:javascript
复制
a = dict({'import': 'trade', 1: 7.8})

这是行不通的:

代码语言:javascript
复制
a = dict(import='trade', 1=7.8)

它将导致以下错误:

代码语言:javascript
复制
    a = dict(import='trade', 1=7.8)
             ^
SyntaxError: invalid syntax
票数 273
EN

Stack Overflow用户

发布于 2010-05-18 07:42:21

第一个是大括号。否则,您会遇到带有奇数字符的密钥的一致性问题,如=

代码语言:javascript
复制
# Works fine.
a = {
    'a': 'value',
    'b=c': 'value',
}

# Eeep! Breaks if trying to be consistent.
b = dict( 
    a='value',
    b=c='value',
)
票数 91
EN

Stack Overflow用户

发布于 2013-02-20 01:51:37

我认为第一个选项更好,因为您将以‘a’或‘’another‘的形式访问值。字典中的键是字符串,没有理由假装它们不是。对我来说,关键字语法乍看起来很聪明,但再看起来就晦涩难懂了。这只在你使用__dict__的时候才有意义,关键字稍后会变成属性,就像这样。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2853683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档