从for循环到列表理解

koa*_*421 4 python nested-lists

我有一个显示和库存报告的程序,我只是想知道如何将以下内容放入列表理解而不是for-loop ...我对所有这个python术语都是一个菜鸟但是从我所知道的是任何形式的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
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 7

您的代码基本上等同于

TotSize[:] = map(sum, data)
Run Code Online (Sandbox Code Playgroud)

这将总结所有data,不仅是第一row行和第一列col.它还会调整大小TotSize以匹配行data数(假设TotSize是列表).

我想知道你为什么要传递应该存储结果的列表.在Python中,您通常只返回该列表:

def row_sums(data):
    return map(sum, data)
Run Code Online (Sandbox Code Playgroud)

现在,值得为这个定义一个函数是值得怀疑的......


Nol*_*lty 6

我可能误解了你的问题,但是你要求这样的东西吗?

>>> testdata = [[5, 6, 8], [], range(8), [42]]
>>> ToTSize = [sum(row) for row in testdata]
>>> ToTSize
[19, 0, 28, 42]
Run Code Online (Sandbox Code Playgroud)