我正在尝试理解我在网上看到的一些代码。我不确定\
做了什么。这是一个带递归调用的数组吗?你能帮我把它放到一个多行循环中让我能理解吗?
actionList = [ \
(self.miniMaxHelp(gameState.generateSuccessor(agentIndex, k), \
newDepth, ind)[0], k) for k in gameState.getLegalActions(agentIndex)]
答案 0 :(得分:4)
你所拥有的是一个(相当复杂的)list-comprehension。
该行末尾的\
是python""在下一行继续此操作"标记。但是,在这种情况下,它们是完全没有必要的,因为如果没有设置括号,大括号或方括号,python将继续到下一行。
e.g:
f = 1 + \
2
与:
相同f = 1 + 2
与以下内容相同:
f = (1 +
2)
类似地,
lst = [1, 2]
与:
相同lst = [1, \
2]
# OR
lst = [
1,
2
]
答案 1 :(得分:0)
如果答案评论会保留格式,那么就会去那里。但我猜测反斜杠是为了保持80字符宽度格式而没有奇怪的结构,如
actionList = [(self.miniMaxHelp(gameState.generateSuccessor(agentIndex, k),
newDepth, ind)[0], k)
for k in gameState.getLegalActions(agentIndex)]
或将该列表理解完全拆分为for loop
actionList = []
for k in gameState.getLegalActions(agentIndex):
actionList.append((self.miniMaxHelp(gameState.generateSuccessor(agentIndex, k),
newDepth, ind)[0], k))
答案 2 :(得分:0)
这就是那段代码所做的,以更清晰的格式:
actionList = []
for k in gameState.getLegalActions(agentIndex):
successor = gameState.generateSuccessor(agentIndex, k)
x = self.miniMaxHelp(successor, newDepth, ind)[0]
actionList.append((x, k))