Python而非PEP8中的Dict理解
我的Python2.7的Supreme Linter报告说这一行不是PEP8:Python而非PEP8中的Dict理解,python,pep8,Python,Pep8,我的Python2.7的Supreme Linter报告说这一行不是PEP8: D = {k:get_distance(v) for k, v in D.items() if len(v) > 1} 在列8和27 但当我在冒号后面插入空格(:)时,升华中会出现一个红色感叹号 如何使该行符合PEP8标准 更新 升华文本2.0.2,构建2221; 升华皮棉v1.8; Python PEP8 Lint v2013.10.11.06 代码工作并产生无错误的输出 D = {k: get_dist
D = {k:get_distance(v) for k, v in D.items() if len(v) > 1}
在列8
和27
但当我在冒号后面插入空格(:
)时,升华中会出现一个红色感叹号
如何使该行符合PEP8标准
更新
升华文本2.0.2,构建2221;
升华皮棉v1.8;
Python PEP8 Lint v2013.10.11.06
代码工作并产生无错误的输出
D = {k: get_distance(v) for k, v in D.items() if len(v) > 1}
这不是语法错误,是正确的PEP8编写方法。检查是否没有任何隐藏的unicode字符。在
:
后面插入空格;这仍然是有效的Python语法:
D = {k: get_distance(v) for k, v in D.items() if len(v) > 1}
如果您遇到语法错误,请在其他地方引入该错误。例如,您可能忘记关闭前一行的)
括号
请注意,使用大写字母作为局部变量不符合PEP-8。选择更好的小写字母,用下划线表示局部变量的名称:
def solution(seq):
positions = defaultdict(list)
for i, item in enumerate(seq):
positions[item].append(i)
distances = {k: get_distance(v) for k, v in positions.items() if len(v) > 1}
return max(distances.value()) if distances else 0
最后但并非最不重要;您在
位置
字典中的索引是有序的(递增的),因此get_distance()
应该只返回l[-1]-l[0]
以使其在O(1)恒定时间内返回距离。添加空格不应给出语法错误。该错误可能是由其他原因造成的。在冒号后插入空格不是语法错误。请显示您收到的完整错误消息。有趣。代码正常,但升华报告了一个错误符号(红色感叹号)。@oski86:那个么你们使用的是什么版本的linter?什么配置?你试过运行代码吗?@oski86:我无法用Sublimiter 3.5标准配置重现这个。这完全回答了我的问题。好像我有一个过时的崇高环境。谢谢