我有一個程序,顯示和庫存報告,我只是想知道我怎麼可以把以下列表理解,而不是一個for循環...我是種在所有這條巨蟒行話一個小白但我知道那是什麼東西都在一個for循環的形式,也可以表現爲一個列表理解....任何幫助將不勝感激從一個for循環到一個列表理解
def rowSum(TotSize,data,row,col):
"""Calculates the sum of each row in a given 2 dimensional list and stores
it into a given one dimensional list"""
for i in range(row):
sum = 0
for j in range(col):
sum += data[i][j]
TotSize[i] = sum
你真的想要一個列表理解嗎?這看起來像是一個'map'和'sum'的工作(儘管'map'和列表解析實際上是表達同一個想法的不同方式)。 – 2012-03-28 00:04:43
「*任何形式爲for-loop的東西也可以表示爲列表理解*」 - 這不是真的。任何列表,其元素都可以由另一個列表的函數明確定義,可以寫成列表理解:'newList = [f(x)for x in otherList]'。這相當於多種語言的'map':'newList = otherList.map(f)'。有些列表不能用這種方式表示,比如1D元胞自動機,2D動態編程表或者帶有副作用的函數(比如rowSum中的「sum」)。 (你會像你這樣寫和,或使用'reduce') – ninjagecko 2012-03-28 00:39:20
「並將其存儲到」 - 不要這樣做。使用返回值返回值。 – 2012-03-28 00:59:21