Python 如何从文本文件中生成二维数组?
可能重复:Python 如何从文本文件中生成二维数组?,python,arrays,text,2d,Python,Arrays,Text,2d,可能重复: 我有一个文本文件“mapview.txt”,其内容是: 1234 5678 9012 我希望结果是: [[1,2,3,4],[5,6,7,8],[9,0,1,2,]] 我不想这样: [['1','2','3','4'],['5','6','7','8'],['9','0','1','2']] 我有这样一个代码: getit = open('./mapview.txt') readit = getit.read() itsline = readit.split() line0
我有一个文本文件“mapview.txt”,其内容是:
1234
5678
9012
我希望结果是:
[[1,2,3,4],[5,6,7,8],[9,0,1,2,]]
我不想这样:
[['1','2','3','4'],['5','6','7','8'],['9','0','1','2']]
我有这样一个代码:
getit = open('./mapview.txt')
readit = getit.read()
itsline = readit.split()
line0 = list(itsline[0])
line1 = list(itsline[1])
line2 = list(itsline[2])
final = [line0,line1,line2]
print final
但结果是
[['1','2','3','4'],['5','6','7','8'],['9','0','1','2']]
我怎样才能得到它
[[1,2,3,4],[5,6,7,8],[9,0,1,2,]]
??我需要这个表单,因为我将使用数组中的整数
有什么建议吗?任何帮助都会很好
提前谢谢 您可以使用以下命令将列表中的所有字符串更改为int:
map(int, lst)
(map
函数将一个函数应用于列表的每个项目,而int
函数将字符串转换为列表)。在您的例子中,您需要更改列表列表中的所有字符串,因此您需要
[map(int, lst) for lst in final]
关于代码,还有一件事需要注意
line0 = list(itsline[0])
line1 = list(itsline[1])
line2 = list(itsline[2])
这不是一个好主意-只有当文件中正好有3行时,它才起作用。这也可以通过以下措施加以改进:
final = map(list, itsline)
您可以使用以下命令将列表中的所有字符串更改为int:
map(int, lst)
(map
函数将一个函数应用于列表的每个项目,而int
函数将字符串转换为列表)。在您的例子中,您需要更改列表列表中的所有字符串,因此您需要
[map(int, lst) for lst in final]
关于代码,还有一件事需要注意
line0 = list(itsline[0])
line1 = list(itsline[1])
line2 = list(itsline[2])
这不是一个好主意-只有当文件中正好有3行时,它才起作用。这也可以通过以下措施加以改进:
final = map(list, itsline)
要修改您的解决方案,请更改
line0 = list(itsline[0])
line1 = list(itsline[1])
line2 = list(itsline[2])
到
但这种列表理解将更有效:
[[int(i) for i in line.strip()] for line in open('file/path')]
要修改您的解决方案,请更改
line0 = list(itsline[0])
line1 = list(itsline[1])
line2 = list(itsline[2])
到
但这种列表理解将更有效:
[[int(i) for i in line.strip()] for line in open('file/path')]
open()。你可能是说@J.F.Sebastian:你说得对。修复了open()的错误。strip
无法工作。你可能是说@J.F.Sebastian:你说得对。修正错误