我想創(chuàng)建一個(gè)在 python 中旋轉(zhuǎn)二維列表的函數(shù),如下所示:輸入: [[0,1,2,3],[0,1,2,3]]輸出:[[0,0],[1,1],[2,2],[3,3]]我想首先創(chuàng)建一個(gè)包含占位符 None 值的列表,以便稍后可以輕松地輸入這些值。我想出了這個(gè)代碼:matrix = [[0,1,2,3],[0,1,2,3]]#debugging value, will be an argument of the function. output = []row= []for x in range(len(matrix)): row.append(None)for x in range(len(matrix[0])): output.append(row)因此,這為現(xiàn)在組織數(shù)據(jù)創(chuàng)建了一個(gè)很好的起點(diǎn),但現(xiàn)在發(fā)生了一些奇怪的事情。如果我現(xiàn)在嘗試運(yùn)行類似的東西output[0][0] = 5,輸出變量突然具有以下值: [[5, None], [5, None], [5, None], [5, None]],而這一行應(yīng)該只影響列表中的第一個(gè)列表。更奇怪的是,現(xiàn)在臨時(shí)列表行的值為[5, None]。該行根本不應(yīng)該影響該變量。我是否遺漏了什么,或者這是Python中的一個(gè)錯(cuò)誤?我在 Windows 上的 Python 3.7.6 和 Linux 上的 Python 3.8.2 上嘗試過(guò)此操作。有人可以幫我解決這個(gè)問(wèn)題嗎?
1 回答

開滿天機(jī)
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
您可以使用 zip()
lst_input=[[0,1,2,3],[0,1,2,3]]
def rotate_list(lst_input):
lst_output=[]
for a,b in zip(lst_input[0],lst_input[1]):
lst_output.append([a,b])
return lst_output
print(rotate_list(lst_input))
#[[0, 0], [1, 1], [2, 2], [3, 3]]
添加回答
舉報(bào)
0/150
提交
取消