我有一个程序,显示和库存报告,我只是想知道我怎么可以把以下列表理解,而不是一个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