Python而非PEP8中的Dict理解

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

我的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_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标准配置重现这个。这完全回答了我的问题。好像我有一个过时的崇高环境。谢谢