我试图返回一个特定的字符串,它读出" RowX:[行的总和]"对于tsv表的每一行,其中X =行号(索引+1)。到目前为止,除了行号,我可以使一切工作正常。
我的代码:
#!/usr/bin/env python
from __future__ import division, print_function
import sys
import csv
def my_sum(row):
a = 0
for i in row:
a = a + float(i)
return a
def main():
tsvfile_input = sys.argv[1]
data = csv.reader(open(tsvfile_input), delimiter = '\t')
for row in data:
RowSum = my_sum(row)
print('Row' + 'X' + ': ' + str(RowSum))
if __name__ == '__main__':
main()
到目前为止取代了' X'我已经尝试过data.index(),它返回了:
AttributeError: '_csv.reader' object has no attribute 'index'
对不起,如果显而易见。我对编码非常陌生,我正在做这个练习的一部分。另外,如果你想知道我为什么不使用sum(),那么它的部分练习就是不使用sum()。
谢谢!
答案 0 :(得分:6)
enumerating数据怎么样?
for index, row in enumerate(data):
RowSum = my_sum(row)
print('Row %d: %f' % (index + 1, rowSum))
Python也已经有了sum函数,所以你可以这样做:
for index, row in enumerate(data):
print('Row %d: %f' % (index + 1, sum(float(num) for num in row)))
编辑(主要功能的完整示例):
def main():
tsvfile_input = sys.argv[1]
data = csv.reader(open(tsvfile_input), delimiter = '\t')
for index, row in enumerate(data):
print('Row %d: %f' % (index + 1, sum(float(num) for num in row)))