将注释放在多行列表文字中



我正在做一个优化问题,并编写一个巨大的列表。我想在列表中插入如下注释

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给出错误?

您只需要删除反斜杠字符:

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的节选也是相关的:

以反斜杠结尾的行不能包含注释。反斜杠可以不要继续评论。反斜杠不能继续标记,除非对于字符串字面值(即,除了字符串字面值之外的令牌不能使用反斜杠分隔物理行)。反斜杠是非法的

最新更新