我正在做一个优化问题并编写一个巨大的列表。我想在列表中插入注释,如下所示
my_rhs = [1.0, 1.0, 0.0, 0.0, 0.0,\ #comment1
-1.0, -1.0, -1.0,\ #comment2
0.0, 0.0, 0.0]
但是当我这样做时,Python会出错。我如何评论所显示的地方?我尝试将每一行定义为新列表并使用+
进行追加,但这似乎也无效。如下所示
my_rhs = [1.0, 1.0, 0.0, 0.0, 0.0]+\ #comment1
[-1.0, -1.0, -1.0]+\ #comment2
[0.0, 0.0, 0.0]
如果没有Python给出错误,我如何在显示的位置发表评论?
答案 0 :(得分:11)
您只需删除反斜杠字符:
my_rhs = [1.0, 1.0, 0.0, 0.0, 0.0, # comment1
-1.0, -1.0, -1.0, # comment2
0.0, 0.0, 0.0]
以下是演示:
>>> my_rhs = [1.0, 1.0, 0.0, 0.0, 0.0, # comment1
... -1.0, -1.0, -1.0, # comment2
... 0.0, 0.0, 0.0]
>>> my_rhs
[1.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0, 0.0, 0.0, 0.0]
>>>
\
字符告诉Python以下行是当前行的一部分。所以,它解释了这个:
my_rhs = [1.0, 1.0, 0.0, 0.0, 0.0,\ #comment1
-1.0, -1.0, -1.0,\ #comment2
0.0, 0.0, 0.0]
等同于:
my_rhs = [1.0, 1.0, 0.0, 0.0, 0.0, #comment1 -1.0, -1.0, -1.0, #comment2 0.0, 0.0, 0.0]
值得注意的是,PEP 8是Python代码的官方样式指南,它有一个关于包装长行的部分:
包装长行的首选方法是使用Python的暗示 括号,括号和括号内的行继续。排长龙 可以通过包装表达式来分解多行 括弧。这些应该优先使用反斜杠 换行。
Explicit Line Joining的摘录也很重要:
以反斜杠结尾的行无法发表评论。反斜杠确实如此 不要继续发表评论。反斜杠不会继续使用令牌,除非 对于字符串文字(即,字符串文字以外的标记不能 使用反斜杠划分物理线路)。反斜杠是非法的 字符串文字外的一行上的其他地方。