gpt4 book ai didi

python - 接收输入文件并将其存储为Python中的二维列表?

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:54 24 4
gpt4 key购买 nike

我的程序需要接收包含“board”的 .dat 或 .txt 文件,我需要读入该 board 并将其存储在 2D 列表中。

板的示例文本文件:

+---+-----+
| | |
| |=====|
| | |
+---+-----+

我的问题是,如何将此文件转换为 2D 列表,以便我可以使用特定符号填充空白。就像 MS Paint 中的自动填充一样。

最佳答案

如果将字符串传递给 list 函数,它会采用字符串中的每个字符,并将其作为列表的单独元素:

>>> list('hello')
['h', 'e', 'l', 'l', 'o']

列表理解是一种创建列表的方法,同时迭代某些序列以创建列表的元素:

>>> [x * 2 for x in range(1, 5)]
[2, 4, 6, 8]

为了演示,我们将使用两个有用的 Python 工具:StringIOpprint。 StringIO 允许我们定义类文件对象的内容,因此我们可以在不实际创建文件的情况下测试代码。 pprint pretty-print ,其中包括很好地包装列表,以便它们适合屏幕。

我们可以根据换行符“\n”分割StringIO内容:

>>> from StringIO import StringIO
>>> from pprint import pprint

>>> contents = StringIO("""+---+-----+
... | | |
... | |=====|
... | | |
... +---+-----+""")

>>> matrix = [list(line.strip()) for line in contents]
>>> pprint(matrix)
[['+', '-', '-', '-', '+', '-', '-', '-', '-', '-', '+'],
['|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' ', '|'],
['|', ' ', ' ', ' ', '|', '=', '=', '=', '=', '=', '|'],
['|', ' ', ' ', ' ', '|', ' ', ' ', ' ', ' ', ' ', '|'],
['+', '-', '-', '-', '+', '-', '-', '-', '-', '-', '+']]

关于python - 接收输入文件并将其存储为Python中的二维列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33989735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com