繁体   English   中英

Python语法单行循环

[英]Python Syntax One Line Loop

我试图了解我在网上看到的一些代码。 我不太确定\\做什么。 这是否使数组具有递归调用? 您能帮我把它放入多行循环中,以便我理解吗?

actionList = [ \
        (self.miniMaxHelp(gameState.generateSuccessor(agentIndex, k), \
        newDepth, ind)[0], k) for k in gameState.getLegalActions(agentIndex)]

您所拥有的是一个(相当复杂的) 列表理解

行尾的\\是python的“在下一行继续执行”标记。 但是,在这种情况下,它们是完全不必要的,因为如果未关闭一组括号,花括号或方括号,则python将继续到下一行。

例如:

f = 1 + \
    2

是相同的:

f = 1 + 2

与以下内容相同:

f = (1 +
     2)

同样的,

lst = [1, 2]

是相同的:

lst = [1, \
       2]
# OR
lst = [
  1,
  2
]

如果答案注释可以保留格式,则可以去那里。 但是我想反斜杠是保持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))

这是一段代码的工作,格式更清晰:

actionList = []
for k in gameState.getLegalActions(agentIndex):
    successor = gameState.generateSuccessor(agentIndex, k)
    x = self.miniMaxHelp(successor, newDepth, ind)[0]
    actionList.append((x, k))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM