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]]
发布于 2019-06-10 00:03:32
这是一个经典的python陷阱
G = [[] for i in range(numCourses)]
创建numCourses
新的空列表,而
G1 = [[]]*numCourses
首先创建(内部)空列表,然后创建一个由它的numCourses
副本组成的列表。这就是为什么当您在G1
中更改一个列表时,所有列表都会更改。
https://stackoverflow.com/questions/56516155
复制相似问题