Python 为什么以下代码部分的输出不同?
G和G1列表的输出不同Python 为什么以下代码部分的输出不同?,python,list,Python,List,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]]这是一个经典的python问题
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]]这是一个经典的python问题
G = [[] for i in range(numCourses)]
创建numCourses新的空列表,而
G1 = [[]]*numCourses
首先创建内部空列表,然后创建一个由numCourses副本组成的列表。这就是为什么在G1中更改一个列表时,所有列表都会更改。请阅读: