[英]How do I read a text file into a 2D list of strings in Python
我有一個包含 ASCII 符號的文本文件:
###@@###%
##@@&&&#%
#@%%%%%%%
我需要閱讀此文本文件以返回以下形式的 2D 列表:
[['#','#','#','@','@','#','#','#','%'],
['#','#','@','@','&','&','&','#','%'],
['#','@','%','%','%','%','%','%','%']]
但是,我的輸出為:
[['###@@###%'], ['##@@&&&#%'], ['#@%%%%%%%']]
到目前為止,這是我的代碼:
def readLevel(n):
'''takes an integer as argument representing the level number
and reads the appropriate game board file. Returns it as a
2D list of strings.'''
file = open('./levels/ascii_level1.txt','r')
level = []
for line in file:
numString = line.split()
level.append(numString)
file.close()
return level
我該如何正確地做到這一點?
您可以使用list
將字符串轉換為字符list
:
for line in file:
numString = list(line)
level.append(numString)
這是有效的,因為list
將任何類型的序列轉換為列表,而字符串是一個字符序列。
line.split()
方法對此不起作用,因為它在空格上拆分,但字符串不包含任何空格。 在某些語言中,您可以使用空分隔符調用.split('')
等等效方法將字符串拆分為單個字符,但這在 Python 中是錯誤的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.