G和G1列表的输出不同。
numCourses = 2
prerequisites = [[1,0]]
G = [[] for i in range(numCourses)]
G1 = [[]]*numCourses
for i,j in prerequisites:
G[j].append(i)
for i,j in prerequisites:
G1[j].append(i)
我得到以下输出G = [[1],[]]
和G1 = [[1],[1]]
答案 0 :(得分:1)
这是经典的Python陷阱
G = [[] for i in range(numCourses)]
同时创建numCourses
个空白列表
G1 = [[]]*numCourses
首先创建一个(内部)空列表,然后创建一个由numCourses
个副本组成的列表。因此,当您在G1
中更改一个列表时,所有列表都会更改。