Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 如何从文本文件中生成二维数组?_Python_Arrays_Text_2d - Fatal编程技术网

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:你说得对。修正错误