在许多行中用Python初始化复杂的嵌套列表?

时间:2017-01-23 13:21:49

标签: python syntax indentation

Python需要缩进。那么,如何初始化内联的复杂嵌套对象?

我应该用一条长线写出来吗

rewards = [[-0.04, -0.04, -0.04, -0.04], [-0.04, 0, -0.04, -0.04], [-0.04, -0.04, -0.04,-0.04]]

或者我能以某种方式包装它们吗?

更新

我的问题不是要打破长线,这很明显是在文档中写的,而是在定义复杂的嵌套结构(例如列表的列表列表)时打破长行。我无法相信我们应该在这里使用行连续语法。

更新1

不,这不是重复。

3 个答案:

答案 0 :(得分:9)

一种方法是使用:

rewards = [
    [-0.04, -0.04, -0.04, -0.04],
    [-0.04, 0, -0.04, -0.04],
    [-0.04, -0.04, -0.04,-0.04]
]

请注意,列表中用于分隔元素的任何空格都是多余的,因为词法分析器会将其删除;所以这只是一个人的品味的可读性问题。

你可以在一行中编写它,但是,当使用长嵌套列表时,你很容易达到80字符串限制,而且我个人并不觉得表示读者友好。

答案 1 :(得分:3)

在括号内,包括[{(,您可以使用所需的任何格式。

答案 2 :(得分:0)

您可以使用尾部反斜杠在Python中包装任何行:

rewards = [[-0.04, -0.04, -0.04, -0.04], \
[-0.04, 0, -0.04, -0.04], [-0.04, -0.04, -0.04,-0.04]]

仍然不是真正需要,正如之前的回答中提到的那样