我有一个包含矩阵的文件,第一行显示行数3,第5列。
3 5
TTTTT
TMMMT
TTTTT
我正在编写一个python程序来划分列并总结单元格数,
TT
TM
TT
total number = 6
第二个
TT
MM
TT
total number= 6
和最后一个
T
T
T
total number = 3
到目前为止我的代码
rows = []
with open('example.in') as fp: #the file name is example.in
for line in fp:
rows.append(line.strip()) #removes white spaces
for i , rowi in enumerate(rows[1:]): #slices out the first row
print(len(rowi))
输出
5
5
5
它将每行中的单元格数相加。 我是python编程的新手。
答案 0 :(得分:1)
也许是这样的?
def count_cells_row(file_in):
"""
generator to count cells per row
file_in -- fileobject containing matrix
"""
for row in file_in:
row = row.strip()
if row:
yield len(row)
with open('/path/to/file') as file_in:
ncells = sum([i for i in count_cells_row(file_in)])
print (ncells)
所以我首先创建一个生成每次迭代行长度的生成器。 然后我通过列表理解([i for count in count_cells_row(file_in)])列出这些值,这是另一种制作循环的方法。 结果将在你的情况下[5,5,5]。
我使用python函数sum
来计算这些值的总和。