[英]Why is the output different for following part of code?
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陷阱
G = [[] for i in range(numCourses)]
創建numCourses
新的空列表,同時
G1 = [[]]*numCourses
首先創建(內部)空列表,然后創建一個由numCourses
副本組成的列表。 這就是為什么當您在G1
更改一個列表時,它們全部都會更改的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.