如何在Python中将文本文件读入2D字符串列表
我有一个包含ASCII符号的文本文件,如下所示:如何在Python中将文本文件读入2D字符串列表,python,python-3.x,string,Python,Python 3.x,String,我有一个包含ASCII符号的文本文件,如下所示: ###@###% ##@@&&% #@%%%%%%% 我需要阅读此文本文件以返回以下格式的2D列表: , ['#','#','@','@','&','&','&','#','%'], ['#','@','%','%','%','%','%','%','%']] 但是,我的输出如下所示: 这是我目前的代码: def读取级别(n): ''接受一个整数作为表示级别号的参数 并读取相应的游戏板文件。将其作为 二维字符串列表。“” 文件=打开
###@###%
##@@&&%
#@%%%%%%%
我需要阅读此文本文件以返回以下格式的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中是一个错误。使用上下文管理器处理文件。为什么首先需要列表中的字符?此外,变量和函数名应遵循带有下划线的小写形式。“为什么首先需要列表中的字符?”可能是因为列表是可变的,而字符串不是。这是赋值要求的一部分。