Python 字典文本的正确布局
我见过一些人们喜欢设置字典格式的不同方式,但大多数人似乎遵循以下两种方式之一: 备选方案1) 备选方案2) 在使用中,两者都做相同的事情,但是一个更python,是一个更好的方式格式化字典,是不是一个完全不正确 我很想知道哪种格式最被广泛接受,并且在我的脚本中使用会更好Python 字典文本的正确布局,python,dictionary,coding-style,Python,Dictionary,Coding Style,我见过一些人们喜欢设置字典格式的不同方式,但大多数人似乎遵循以下两种方式之一: 备选方案1) 备选方案2) 在使用中,两者都做相同的事情,但是一个更python,是一个更好的方式格式化字典,是不是一个完全不正确 我很想知道哪种格式最被广泛接受,并且在我的脚本中使用会更好 在我被告知我没有做太多研究之前,我做了,这造成了更多的混乱,不同的网站,不同的人,不同的教程,经常使用不同的方式,我找不到任何地方说“这样做,这是正确的语法”对于解释器来说,它们是等价的。在任何给定的用例中,选择您认为其他人更容
在我被告知我没有做太多研究之前,我做了,这造成了更多的混乱,不同的网站,不同的人,不同的教程,经常使用不同的方式,我找不到任何地方说“这样做,这是正确的语法”对于解释器来说,它们是等价的。在任何给定的用例中,选择您认为其他人更容易阅读的语法
这是主观的,但我个人只会对最小的字典使用第二种语法。它们都是正确的方法。但是如果你已经初始化了一个100对的字典。第一个选项使它更易于阅读 Second选项适用于具有一对或两对词典的小型词典本节PEP 8中讨论了它 连续行应垂直或垂直对齐包裹的元素 使用Python的隐式行连接括号、括号和 大括号,或使用悬挂缩进[5] 所以字典就在这里 …括号和大括号 它所做的就是给出几种多行语句的实现方法
# 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,因为您错过了一个空间;它应该是(注意额外的空间。是的,它很迂腐):
至于多行版本,PEP8中的所有示例都在最后一行留下了结束括号(但没有具体说明应该放在哪里)。也有一些选择,你选择的似乎只是一种偏好(也是PEP8)。主要规则是:
使用悬挂缩进时,应注意以下事项
应用第一行和第二行不应该有争论
应使用压痕来清楚地将其自身区分为
续行
但此处仅适用悬挂缩进和与开头分隔符对齐的版本
# 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'}
有些方面在PEP8中没有涉及
git diff
-或其他VCS-仅显示更改my_first_dict_today = {
key1: value1,
key2: value2,
key3: value3,
}
# note the comma after value3
结束括号可以与最后一行或第一行对齐,PEP8同时允许这两行。因此,在给定的实例中,究竟哪一行更容易阅读,这是关键所在?例如,为了进行比较,我想使用选项1,因为你可以阅读一个专栏,但对于一些无关紧要的东西,电话簿选项2就足够了?@nu11p01n73R字典的布局在PEP8中没有涉及。因此,因为没有“权威”立场(即在PEP8中),选择哪种格式的答案都是意见。。我选择的形式很大程度上是基于它如何适合一条线,但没有空间后=是可怕的!我编辑了你的标题,因为它与语法无关(从语法上讲,两个结构都是有效的)。@user2864740:PEP确实提到了右大括号的位置(与最后一行或第一行对齐)。
d = {'key1': 'value1', 'key2': 'value2'}
# 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'}
my_first_dict_today = {
key1: value1,
key2: value2,
key3: value3,
}
# note the comma after value3