我有一个python字典,其定义不适合单行。谁能告诉我python词典的指南。我现在有这个对我的眼睛不好看。
initialstate = {
'state':grid,
'f':find_manhattan_distance(grid,goal),
'g':0,
'h':find_manhattan_distance(grid,goal),
'ancestor': None
}
答案 0 :(得分:9)
pep8.py
说:
mydict.py:2:28: E231 missing whitespace after ':'
mydict.py:1:15: E222 multiple spaces after operator
试试这个:
initialstate = {
'state': grid,
'f': find_manhatten_distance(grid, goal),
'g': 0,
'h': find_manhatten_distance(grid, goal),
'ancestor': None
}
注意逗号和运算符后间距的变化。此版本通过了所有pep8.py
测试。
答案 1 :(得分:4)
人们对如何最好地格式化这样的事情有所不同。我更喜欢:
initialstate = {
'state': grid,
'f': find_manhattan_distance(grid, goal),
'g': 0,
'h': find_manhattan_distance(grid, goal),
'ancestor': None,
}
我喜欢这种风格的东西:
(PS:“曼哈顿”里面只有一个......)
答案 2 :(得分:2)
您可以选择以下选项(以及其他选项):
initialstate = {
'state': grid,
'f': find_manhatten_distance(grid,goal),
'g': 0,
'h': find_manhatten_distance(grid,goal),
'ancestor': None,
}
,
的情况)initialstate
initialstate = { 'state': grid,
'f': find_manhatten_distance(grid,goal),
'g': 0,
'h': find_manhatten_distance(grid,goal),
'ancestor': None, }
答案 3 :(得分:1)
对于键是字符串的字典初始化,您可以尝试使用关键字参数而不是dict(...)
dict文字语法的{...}
构造函数,因为它会删除所有额外的引号。发现定义混乱。
initialstate = dict(state = grid,
f = find_manhattan_distance(grid, goal),
g = 0,
h = find_manhattan_distance(grid, goal),
ancestor = None)
正如你所看到的,我也喜欢排列等号,这样我就可以向下扫描并轻松查看作业。
答案 4 :(得分:0)
PEP8说,您应该避免排队=的cos,否则当一个较长的变量名出现并弄乱您的对齐方式时,它会咬您。
如果您喜欢“向下搜索列表”,则标识符和=之间的巨大差距就是左右眼球痛。为什么不对齐变量,以使两个半部在视觉上都在赋值运算符旁边?
initialstate = dict(state = grid,
f = find_manhattan_distance(grid, goal),
g = 0,
h = find_manhattan_distance(grid, goal),
ancestor = None
)
奖金:可以容纳新的超长变量名称,而不必在较早的项目上添加空格:
initialstate = dict(state = grid,
f = find_manhattan_distance(grid, goal),
g = 0,
h = find_manhattan_distance(grid, goal),
ancestor = None,
user_selected_startpoint = 0
)