|
发表于 2021-9-12 22:16:34
|
显示全部楼层
- import random
- A = [0]*3 # 這裡意思就是 A = [0, 0, 0] 不是 A = [[0], [0], [0]]
- for i in range(3):
- for j in range(3):
- A[i].append(random.randint(0, 3)) # 所以當然這裡也不能正常執行代碼
复制代码
正確寫法:
- A = [[0 for _ in range(3)] for _ in range(3)] # 這裡意思就是 A = [[0, 0, 0] , [0, 0, 0] , [0, 0, 0]]
- B = [[0]*3]*3
- print(A) # 打印出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
- print(B) # 打印出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
- # 雖然 2者 看是一樣,但其實不一樣
- A[1][1] = 13
- B[1][1] = 13
- print(A) # 打印出:[[0, 0, 0], [0, 13, 0], [0, 0, 0]] 這裡只是 A[1][1] 位置的值改變
- print(B) # 打印出:[[0, 13, 0], [0, 13, 0], [0, 13, 0]] 這裡對每個 B 裡的列表都做改變
复制代码 |
|