Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从文本文件中添加两个矩阵(Python w/o模块)_Python_File_Matrix_Add - Fatal编程技术网

从文本文件中添加两个矩阵(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!这帮了大忙@胖猫没问题:)