我想在一個MxN矩陣上做一個非常簡單的操作。如果矩陣中的其中一個元素包含零,我想將該元素所在的整行置零。我實施了可能是我未經訓練的頭腦可以設計的最笨重和最不尋常的pythonic解決方案。我知道有必須使用列表理解,是一個單向或來電,來圖(),但我無法想象的東西比我的野蠻嘗試清潔劑如下:一個人如何使這個代碼更Pythonic?
def has_zero(row):
for i in row:
if not i:
return True
return False
def make_row_of_zeros(numColumns):
row = []
for i in range(numColumns):
row.append(0)
return row
def zeroify_if_has_zero(matrix):
columns = len(matrix[0])
for i in range(len(matrix)): #making all you experts cringe! Sorry!
if has_zero(matrix[i]):
matrix[i] = make_row_of_zeros(columns)
return matrix
你使用numpy數組/矩陣嗎? (如果沒有,你絕對應該) – eudoxos 2013-04-23 06:50:21
應該發佈在http://codereview.stackexchange.com/上。 – JeromeJ 2013-04-23 06:54:23
@JeromeJ有沒有辦法重新發布?事實上,它更像是一個風格問題而不是一個錯誤,它使它成爲codereview的標準嗎? – Thalatta 2013-04-23 06:59:56