Python 从.mtx文件创建列表
我必须编写一个函数,从Python 从.mtx文件创建列表,python,python-3.x,function,file,Python,Python 3.x,Function,File,我必须编写一个函数,从Mydata.mtx文件中获取一个数字矩阵,并为每一行创建一个列表。 Mydata.mtx文件只是一个简单的文件,其数字矩阵如下所示 为便于澄清,以下是文件中的矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 函数应返回每行的列表列表: [['1', '2', '3', '4', '5'], ['6', '7', '8', '9', '10'], ['11', '12', '13', '14', '15
Mydata.mtx
文件中获取一个数字矩阵,并为每一行创建一个列表。
Mydata.mtx文件只是一个简单的文件,其数字矩阵如下所示
为便于澄清,以下是文件中的矩阵:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
函数应返回每行的列表列表:
[['1', '2', '3', '4', '5'], ['6', '7', '8', '9', '10'], ['11', '12', '13', '14', '15']]
我无法获取此信息(上图),但请继续获取此信息(下图):
代码如下:
#print statements are just to see what my output would be
def readMatrix(filename):
listOfLists = []
file = open(filename, "r")
for i in file:
iList = list(i)
listOfLists.append(iList)
print(listOfLists)
callFile = input("Enter the file name: ")
toReadFile = readMatrix(callFile)
额外信息:
第二个函数应该转置这个矩阵
之后,第三个函数创建一个新文件T.Mydata.mtx
(但我可以稍后再尝试解决这些问题。我的主要问题是第一个函数问题:
看起来你有一些额外的空间
解决方案:
问题:
看起来你有一些额外的空间
解决方案:
简单的修复方法是不使用sep
参数,删除数字之间的所有空白
def readMatrix(filename):
listOfLists = []
with open(filename) as f:
for i in f:
listOfLists.append(i.split())
return listOfLists
callFile = input("Enter the file name: ")
toReadFile = readMatrix(callFile)
print(toReadFile)
还可以使用列表理解更简洁地表达它
def readMatrix(filename):
with open(filename) as f:
return [line.split() for line in f]
简单的修复方法是不使用sep
参数,删除数字之间的所有空白
def readMatrix(filename):
listOfLists = []
with open(filename) as f:
for i in f:
listOfLists.append(i.split())
return listOfLists
callFile = input("Enter the file name: ")
toReadFile = readMatrix(callFile)
print(toReadFile)
还可以使用列表理解更简洁地表达它
def readMatrix(filename):
with open(filename) as f:
return [line.split() for line in f]
你的代码在哪里?看起来你只需要去掉空格。@PaulRooney是的,很抱歉我忘了添加。。应该现在就在那里。你的代码在哪里?看起来你只需要去掉空格。@PaulRooney是的,很抱歉我忘了添加。。应该现在就在那里。非常感谢,但是有没有不导入的方法?非常感谢,但是有没有不导入的方法呢?非常感谢您的帮助。我非常感谢您。我不知道这一点。我只是认为str.split()实际上等于str.split(“”)我添加了一个指向文档的链接,对其进行了解释。此外,如果您想转置矩阵,您可以使用numpy还是希望自己实现它?很抱歉,回复太晚。我正在尝试在不使用导入的情况下解决此代码。我使用了
[列表(I)for I in zip(*m)]
在第二个函数中用于转置矩阵。到目前为止,它可以工作,但需要将其更改为可以接受空矩阵。空矩阵是什么样子的?是[]
还是[[]]
还是其他什么?非常感谢您的帮助。我非常感谢您,我不知道这一点。只是想str.split()实际上等于str.split(“”)我添加了一个到文档的链接来解释它。另外,如果你想转置矩阵,你可以使用numpy吗?或者你想自己实现它吗?很抱歉回复太晚。我正在尝试在不使用导入的情况下解算此代码。我使用了[列表(I)for I in zip(*m)]
在第二个函数中用于转置矩阵。到目前为止,它可以工作,但需要更改它以接受空矩阵。空矩阵是什么样子的?是[]
还是[[]]
还是其他什么?