第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

調(diào)用時重復(fù)函數(shù)

調(diào)用時重復(fù)函數(shù)

斯蒂芬大帝 2023-10-31 15:45:52
下面是我的代碼n = 4m = 4figures = [1,2,2]def almostTetris(n, m, figures):    grid = [[0] * m] * n    def shape1(count):        for i in range(n):            for j in range(m):                if grid[i][j] == 0:                    print(grid[i][j])                    print(grid[1][0])                    print(grid[2][0])                    print(grid[3][0])                    grid[i][j] = count                    print(grid[i][j])                    print(grid[1][0])                    print(grid[2][0])                    print(grid[3][0])                    return    def shape2(count):        for i in range(n):            for j in range(m - 2):                if grid[i][j] == 0 and grid[i][j + 1] == 0 and grid[i][j + 2] == 0:                    grid[i][j] = grid[i][j + 1] = grid[i][j + 2] = count                    return    for i in range(len(figures)):        if figures[i] == 1:            shape1(i + 1)        elif figures[i] == 2:            shape2(i + 1)        return gridprint(almostTetris(n, m, figures))這是我打印出來的:00001111[[1, 2, 2, 2], [1, 2, 2, 2], [1, 2, 2, 2], [1, 2, 2, 2]]我的問題是如何grid[i][j] = count將第一列中的所有數(shù)字轉(zhuǎn)換為 1(計數(shù)值)?我以為因為i和j都是0,所以只有第一個元素會變成1。
查看完整描述

1 回答

?
HUX布斯

TA貢獻1876條經(jīng)驗 獲得超6個贊

當(dāng)我第一次學(xué)習(xí)Python時,我也遇到過這個問題。問題出在這一行

grid=[[0]*m]*n

因為它不會創(chuàng)建一個由 0 組成的 nxm 網(wǎng)格,所以它實際上復(fù)制了對象:[[0]*m]n 次以創(chuàng)建二維數(shù)組。因此,如果您更改此對象中的其中一個值,其他 n 個對象實例也會被編輯。嘗試一些類似的事情

grid = [[0]*m for _ in range(n)]


查看完整回答
反對 回復(fù) 2023-10-31
  • 1 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號