gpt4 book ai didi

python - 字典文字的正确布局

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:57 24 4
gpt4 key购买 nike

我看到人们喜欢用几种不同的方式来格式化字典,但大多数人似乎都遵循以下两种方式中的一种:

选项 1)

d = {
'key1': 'value1',
'key2': 'value2'
}

选项 2)

d ={'key1': 'value1', 'key2': 'value2'}

在使用中两者做同样的事情,但是更像 pythonic,是一种更好的格式化字典的方法,是不是完全不正确?

我很想知道哪种格式化方式被最广泛接受并且更适合在我的脚本中使用。

在有人告诉我我没有做太多研究之前,我做了,这导致了更多的困惑,不同的站点,不同的人,不同的教程,经常使用不同的方法,我找不到任何地方说“去做吧像这样,这是正确的语法”

最佳答案

在 PEP 8 中被讨论,在 indentation 中部分。

Continuation lines should align wrapped elements either vertically using Python's implicit line joining inside parentheses, brackets and braces, or using a hanging indent [5]

所以那里涵盖了字典。

...brackets and braces, ...

它所做的只是给出执行多种多行语句的方法;

# Aligned with opening delimiter.
foo = long_function_name(var_one, var_two,
var_three, var_four)

# More indentation included to distinguish this from the rest.
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)

# Hanging indents should add a level.
foo = long_function_name(
var_one, var_two,
var_three, var_four)

所以在你的例子中;

d ={'key1': 'value1', 'key2': 'value2'}

实际上没有遵守 PEP8 whitespace in expressions and statements ,因为你错过了一个空间;它应该是(注意额外的空间。是的,它很迂腐):

d = {'key1': 'value1', 'key2': 'value2'}

至于多行版本,PEP8 中的所有示例都将右括号留在最后一行(但没有具体说明应该放在哪里)。还有一些替代方案,您选择的似乎只是一种偏好 - A Foolish Consistency is the Hobgoblin of Little Minds (也是 PEP8)。主要规则是:

When using a hanging indent the following considerations should be applied; there should be no arguments on the first line and further indentation should be used to clearly distinguish itself as a continuation line.

只有悬挂缩进与开始定界符对齐版本适用于此。

# Aligned with opening delimiter.
d = {'key1': 'value1',
'key2': 'value2'}

longerVariableName = {'key1': 'value1',
'key2': 'value2'}

# Hanging indents should add a level.
d = {
'key1': 'value1',
'key2': 'value2'}

longerVariableName = {
'key1': 'value1',
'key2': 'value2'}

关于python - 字典文字的正确布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26056949/

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