我需要撰寫此代碼,其中我獲取一個包含串列的串列,并獲取這些串列中的整數并將它們除以 2,然后回傳一個包含帶有分割整數的串列的新串列
這是我想出的。我似乎無法獲得包含串列的串列
def div_mat_by_scalar(mat, alpha):
mat2=[]
for i in range(len(mat)):
for j in range(len(mat[i])):
a = mat[i][j]//alpha
mat2.append(a)
return mat2
mat1 = [[2, 4], [6, 8]]
print(div_mat_by_scalar(mat1,2))
這列印[1,2,3,4]但我想要[[1,2],[3,4]]
uj5u.com熱心網友回復:
您需要附加到嵌套串列,而不是主串列。
def div_mat_by_scalar(mat, alpha):
mat2=[]
for row in mat:
row2 = []
for el in row:
a = el//alpha
row2.append(a)
mat2.append(row2)
return mat2
或者使用串列推導式:
def div_mat_by_scalar(mat, alpha):
return [[el//alpha for el in row] for row in mat]
uj5u.com熱心網友回復:
您將每個元素附加到串列中。如果您總是二維的,Bamar 的答案很好mat,但是如果您想將此函式推廣到任何數字維度,您可能需要采用遞回方法:
def div_mat_by_scalar(mat, alpha):
result = []
for elem in mat:
if isinstance(elem, list):
result.append(div_mat_by_scalar(elem, alpha))
else:
result.append(elem // alpha)
return result
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/348945.html
