Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何正确使用deepcopy?_Python_Python 3.x_List_Copy_Breadth First Search - Fatal编程技术网

Python 如何正确使用deepcopy?

Python 如何正确使用deepcopy?,python,python-3.x,list,copy,breadth-first-search,Python,Python 3.x,List,Copy,Breadth First Search,我试图将票证(例如[“ICN”、“SFO”])添加到访问列表中。 但是我不明白这个代码的结果。。。 我以为只有包含两个数据的列表才会添加到访问的中,但它没有 from collections import deque from copy import deepcopy def solution(tickets): queue = deque([]) result = [] for t in tickets: if t[0] == "ICN&qu

我试图将
票证
(例如[“ICN”、“SFO”])添加到
访问
列表中。 但是我不明白这个代码的结果。。。 我以为只有包含两个数据的列表才会添加到访问的
中,但它没有

from collections import deque
from copy import deepcopy

def solution(tickets):
    queue = deque([])
    result = []
    for t in tickets:
        if t[0] == "ICN":
            queue.append((t,[t],1,t))

    while queue:
        route, visited, cnt, travel = queue.popleft()
        print(route[0], visited)
        if cnt == len(tickets):
            result.append(travel)
        start, dest = route[0], route[1]

        for t in tickets:
            visit = deepcopy(visited)
            if t not in visit:
                if t[0] == dest:
                    visit.append(t)
                    travel.append(t[1])
                    queue.append((t,visit,cnt+1,travel))
    return result

# print(solution([["ICN", "JFK"], ["HND", "IAD"], ["JFK", "HND"]]))
t = [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]]
print(solution(t))