在Python中,我想在我的代码中编写一个多行字典。有几种格式。以下是我能想到的一些建议:

Mydict = {"key1": 1, “key2”:2 "key3": 3,} Mydict = {"key1": 1, “key2”:2 “key3”:3, } Mydict = { “key1”:1、 “key2”:2 “key3”:3, }

我知道上面的任何一个在语法上都是正确的,但我假设Python字典有一种首选的缩进和换行样式。是什么?

注意:这不是语法问题。以上所有语句(据我所知)都是有效的Python语句,并且彼此等效。


当前回答

flake8 -一个用于在python代码中强制风格一致性的实用程序,它检查代码语法并提供改进指令-推荐这种格式(参见https://www.flake8rules.com/rules/E133.html):)

mydict = {
    "key1": 1,
    "key2": 2,
    "key3": 3,
    }

其他回答

根据我在教程和其他方面的经验,第二种选择似乎更受欢迎,但这只是个人偏好的选择。

flake8 -一个用于在python代码中强制风格一致性的实用程序,它检查代码语法并提供改进指令-推荐这种格式(参见https://www.flake8rules.com/rules/E133.html):)

mydict = {
    "key1": 1,
    "key2": 2,
    "key3": 3,
    }

通常,如果你有大的python对象,很难格式化它们。我个人更喜欢使用一些工具。

这里是python-beautifier - www.cleancss.com/python-beautify,可以立即将您的数据转换为可定制的样式。

因为你的键是字符串,因为我们在谈论可读性,我更喜欢:

mydict = dict(
    key1 = 1,
    key2 = 2,
    key3 = 3
)

我使用#3。长列表、元组等也是如此。它不需要在缩进之外添加任何额外的空格。一如既往,保持一致。

mydict = {
    "key1": 1,
    "key2": 2,
    "key3": 3,
}

mylist = [
    (1, 'hello'),
    (2, 'world'),
]

nested = {
    a: [
        (1, 'a'),
        (2, 'b'),
    ],
    b: [
        (3, 'c'),
        (4, 'd'),
    ],
}

类似地,这是我喜欢的包含大字符串而不引入任何空白的方式(就像你使用三引号多行字符串一样):

data = (
    "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABG"
    "l0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEN"
    "xBRpFYmctaKCfwrBSCrRLuL3iEW6+EEUG8XvIVjYWNgJdhFjIX"
    "rz6pKtPB5e5rmq7tmxk+hqO34e1or0yXTGrj9sXGs1Ib73efh1"
    "AAAABJRU5ErkJggg=="
)