从文本文件中添加两个矩阵(Python w/o模块)
我试图从包含以下内容的文本文件中添加两个矩阵:从文本文件中添加两个矩阵(Python w/o模块),python,file,matrix,add,Python,File,Matrix,Add,我试图从包含以下内容的文本文件中添加两个矩阵: [[0,1,2],[9,8,7]] [[6,5,4],[3,4,5]] 我有以下代码: def addition(filename): a=[] b=[] with open(filename, 'r') as myfile: data=myfile.read().split() a=data[0].split() b=data[1].split() a=a[0] b=b[0] print (a) sum = [] for
[[0,1,2],[9,8,7]] [[6,5,4],[3,4,5]]
我有以下代码:
def addition(filename):
a=[]
b=[]
with open(filename, 'r') as myfile:
data=myfile.read().split()
a=data[0].split()
b=data[1].split()
a=a[0]
b=b[0]
print (a)
sum = []
for i in range(len(a)):
print (i)
c = []
for j in range(len(a[0])):
c.append(a[i][j]+b[i][j])
sum.append(c)
return sum
但它输出:
[['[['], ['[['], ['06'], [',,'], ['15'], [',,'], ['24'], [']]'],
[',,'], ['[['], ['93'], [',,'], ['84'], [',,'], ['75'], [']]'], [']]']]
而不是:
[[6,6,6],[12,12,12]]
你知道我该怎么解决这个问题吗?谢谢 您当前有
a
和b
作为字符串
-您决不会将它们转换为列表
从结果中可以看出,每个元素
都是字符串中每个位置
处的字符
的串联
,而不仅仅是元素
(数字
)的和
所以,要解决这个问题,我们只需要将a
和b
转换为列表
。如果您确定文件
的内容始终只是列表
(其他人无法访问,因为他们可能会编写恶意代码),则可以使用eval()
进行此操作
要演示其工作原理,请执行以下操作:
>>> eval("[[0, 1, 2], [9, 8, 7]]")
[[0, 1, 2], [9, 8, 7]]
但是,如果您不能绝对信任文件的内容,则应使用ast.literal\u eval
:
>>> import ast
>>> ast.literal_eval("[[0, 1, 2], [9, 8, 7]]")
[[0, 1, 2], [9, 8, 7]]
希望您能够将此应用于您的代码
,由于我无法访问文件
,因此我无法真正为您执行此操作。非常感谢@Joe Iddon!这帮了大忙@胖猫没问题:)