【问题标题】:How to read Lines of text from a file into a 2D matrix in python?如何将文件中的文本行读入 python 中的二维矩阵?
【发布时间】:2022-11-15 10:36:16
【问题描述】:

我想阅读包含以下内容的文本文件:

--------------------
---+---+---+--+-----
-------------+------
++-----------+------
-+-+----+------+----
--------------------
-----------+-------+
------+----+-------+
+-------------------
--+--------+------+-

我不仅想将这些数据拆分成单独的行,而且我还想将它拆分成单独的字符。例如,我希望数据按如下方式读入矩阵:

[ ['-','-','-','-','-','-','-','-','-','-','-','-',' -','-','-','-','-','-','-','-'], ['-','-','-','+','-','-','-','+','-','-','-','+''- ','-','+','-','-','-','-','-',], ... ] 这最终将是一个 10 x 20 的矩阵

我愿意并且能够使用任何可供我支配的图书馆。

我尝试在读取文件后循环遍历文件,并制作字符列表,并将字符列表存储到父列表中,但这只是制作列表列表,但我想制作许多列表的列表(在这种情况下,一个 10 行的列表,每个列表中有 20 列(或字符))

【问题讨论】:

    标签: python matrix


    【解决方案1】:

    你可以试试这个:

    with open("file.txt","r") as f:
        print([[y for y in x[:-1]] for x in f.readlines()])
    

    它将创建一个包含许多列表的列表,x[:-1] 是为了转义“ " 在每行的末尾。

    【讨论】:

      【解决方案2】:

      在列表推导中使用list 将每一行转换为列表。

      with open("file.txt") as f:
          grid = [list(line.strip()) for line in f]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        • 2012-02-27
        • 1970-01-01
        相关资源
        最近更新 更多