簡體   English   中英

如何將文本文件讀入 Python 中的二維字符串列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM