我的问题:
例如,我的文本文件名为'feed.txt'。对于内部,它喜欢:
2 # two means 'there are two matrix in this file'
3 # three means 'the below one is a 3*3 matrix'
1 8 6
3 5 7
4 9 2
4 # four means 'the below one is a 4*4 matrix'
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
此文件旁边有两个矩阵。 [[1,8,6],[3,5,7],[4,9,2]]
和[[16,3,2,13],[5,10,11,8],[9,6,7,12],[4,15,14,1]]
。
我想知道如何在Python中将这两个矩阵用作
之类的列表list_=[[1, 8, 6], [3, 5, 7], [4, 9, 2]]
然后我可以获得sam(list_[0])=15
。
也。
中有三行list_=[[1, 8, 6], [3, 5, 7], [4, 9, 2]]
我希望每行的总和。所以我做了
list _ = [[1,8,6],[3,5,7],[4,9,2]]
表示我在范围内(len(list_)):
sum_=sum(list_[i])
print(sum_)
但我不能得到三个号码,我只得到一个号码,为什么?
答案 0 :(得分:4)
好的,一步一步带你走过这条路。如果'file'
是您的文件名,请尝试:
matrices = [] # The list you'll be keeping your matrices in
with open('file') as f:
num_matrices = int(f.readline())
for mat_index in range(num_matrices):
temp_matrix = [] # The list you'll keep the rows of your matrix in
num_rows = int(f.readline())
for row_index in range(num_rows):
line = f.readline()
# Split the line on whitespace, turn each element into an integer
row = [int(x) for x in line.split()]
temp_matrix.append(row)
matrices.append(temp_matrix)
然后,每个矩阵都将存储在matrices
的索引中。您可以根据需要迭代这些:
for my_matrix in matrices:
# Do something here
print my_matrix
对于对行进行求和的第二部分,如果要使其正常工作,则有两个选项。使用i
索引到列表的一行:
for i in range(len(my_matrix):
total = sum(my_matrix[i])
print(total)
或者使用更多Pythonic方式并直接遍历您的子列表:
for row in my_matrix:
total = sum(row)
print(total)
如果您想保存这些单独的结果以供日后使用,则必须为结果制作一个列表。尝试:
>>> sumz = []
>>> for row in my_matrix:
sumz.append(sum(row))
>>> sumz
[15, 15, 15]