Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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中将文本文件读入2D字符串列表_Python_Python 3.x_String - Fatal编程技术网

如何在Python中将文本文件读入2D字符串列表

如何在Python中将文本文件读入2D字符串列表,python,python-3.x,string,Python,Python 3.x,String,我有一个包含ASCII符号的文本文件,如下所示: ###@###% ##@@&&&#% #@%%%%%%% 我需要阅读此文本文件以返回以下格式的2D列表: , ['#','#','@','@','&','&','&','#','%'], ['#','@','%','%','%','%','%','%','%']] 但是,我的输出如下所示: 这是我目前的代码: def读取级别(n): ''接受一个整数作为表示级别号的参数 并读取相应的游戏板文件。将其作为 二维字符串列表。“” 文件=打开

我有一个包含ASCII符号的文本文件,如下所示:

###@###%
##@@&&&#%
#@%%%%%%%
我需要阅读此文本文件以返回以下格式的2D列表:

,
['#','#','@','@','&','&','&','#','%'], 
['#','@','%','%','%','%','%','%','%']]
但是,我的输出如下所示:


这是我目前的代码:

def读取级别(n):
''接受一个整数作为表示级别号的参数
并读取相应的游戏板文件。将其作为
二维字符串列表。“”
文件=打开('./levels/ascii_level1.txt',r')
级别=[]
对于文件中的行:
numString=line.split()
level.append(numString)
file.close()文件
返回水平

如何正确执行此操作?

您可以使用
list
将字符串转换为字符列表:

对于文件中的行:
numString=列表(行)
level.append(numString)
这是因为
list
将任何类型的序列转换为列表,而字符串是字符序列


line.split()
方法不适用于此,因为它在空格上拆分,但字符串不包含任何空格。在某些语言中,可以使用空分隔符调用类似于
.split(“”)
的方法将字符串拆分为单个字符,但这在Python中是一个错误。

使用上下文管理器处理文件。为什么首先需要列表中的字符?此外,变量和函数名应遵循带有下划线的
小写形式。“为什么首先需要列表中的字符?”可能是因为列表是可变的,而字符串不是。这是赋值要求的一部分。