我有这样的列表列表,如下所示:
vrt = [[1,3,3,8,5,4,2,1,5,6], [2,4,3,3,6,8,1,3,5,6], [4,5,6,4,7,4,3,6,4,7], [2,8,7,0,0,7,4,7,8,0], [2,3,4,7,0,8,7,6,3,8], [3,7,9,0,8,5,3,2,3,4], [1,5,7,7,6,4,2,3,5,6], [0,6,3,3,6,8,0,6,7,7], [0,1,3,2,8,0,0,0,0,0], [3,1,0,3,6,7,0,5,3,1], [1,3,5,7,0,8,6,5,3,1], [3,6,3,1,3,5,8,7,5,1], [4,3,6,0,0,8,4,7,5,3], [3,5,6,8,6,3,1,3,5,2]]
我需要编写一个函数来读取evey行,将每行中的所有整数相加并将每行的结果作为新列表返回,如果这个特定的列表结果将是[38, 41, 50...42]
,那么只是每个列表的总和.
到目前为止,我尝试这样做
def po_vrstah(vrt): s = [] line = vrt.read().split('\n') vsota = sum(line) s.append(vsota) return s
所以我做了一点研究,显然那些read和split('\n'
)只能用于阅读我认为的文件?
所以我的问题是,我如何使用类似的方法来解决这个问题?有没有办法以与文件类似的方式读取列表?
使用列表理解:
[sum(lst) for lst in vrt]
或者,如果您使用的是Python 2,map()
也可以使用:
map(sum, vrt)
你是正确的,分割换行只对字符串有用(无论是从文件中读取还是其他).
它更简单:
>>> print map(sum, vrt)