[問題] node, actions, visited=fringe.pop()
不好意思怕有人誤會
得先說明這是作業,但沒要求解釋以下的問題
最近在寫berkelyey pacman
有3個步驟有點不太明白
想請問
(1)
node, actions, visited = fringe.pop()
一次把右邊的pop assign給左邊的多個variables是什麼意思呢?
(2)
fringe.push((coord, actions+[direction], visited+[node]))
push定義如下,我的理解是依序把coord, actions+[direction], visited+[node]
加入到list中,不知是否正確呢?
(3)
for coord, direction, steps in problem.getSuccessors(node):
我的程度只到 for i in list:
有點不太明白for 後面接多個variables跑的意思是什麼
#Code:
def depthFirstSearch(problem)
fringe = util.Stack()
fringe.push( (problem.getStartState(), [], []) )
while not fringe.isEmpty():
node, actions, visited = fringe.pop()
for coord, direction, steps in problem.getSuccessors(node):
if not coord in visited:
if problem.isGoalState(coord):
return actions + [direction]
fringe.push((coord, actions + [direction], visited + [node] ))
return []
#util
class Stack:
"A container with a last-in-first-out (LIFO) queuing policy."
def __init__(self):
self.list = []
def push(self,item):
"Push 'item' onto the stack"
self.list.append(item)
def pop(self):
"Pop the most recently pushed item from the stack"
return self.list.pop()
def isEmpty(self):
"Returns true if the stack is empty"
return len(self.list) == 0
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.100
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1458704903.A.DB6.html
※ 編輯: veriaw (140.112.49.174), 03/23/2016 12:22:29
→
03/23 12:37, , 1F
03/23 12:37, 1F
→
03/23 12:38, , 2F
03/23 12:38, 2F
→
03/23 12:38, , 3F
03/23 12:38, 3F
推
03/23 23:20, , 4F
03/23 23:20, 4F
推
03/24 02:36, , 5F
03/24 02:36, 5F
→
03/24 02:37, , 6F
03/24 02:37, 6F
→
03/24 02:38, , 7F
03/24 02:38, 7F
→
03/24 02:39, , 8F
03/24 02:39, 8F
→
03/24 02:40, , 9F
03/24 02:40, 9F
→
03/24 02:40, , 10F
03/24 02:40, 10F
→
03/24 02:41, , 11F
03/24 02:41, 11F
→
03/24 02:42, , 12F
03/24 02:42, 12F
→
03/26 23:13, , 13F
03/26 23:13, 13F
→
03/26 23:19, , 14F
03/26 23:19, 14F