Python:如何为嵌套列表返回具有特定格式的字符串

标签 python list-comprehension tostring nested-lists

所以我正在尝试制作一个基于文本的冒险游戏,它有一个使用嵌套列表管理的 map 系统,如下所示:

self.map_ = [
    ['O', 'O', 'O'],
    ['O', 'O', 'O'],
    ['O', 'O', 'O']
]

我的 map 位于一个名为 Map() 的类中具有创建 map 、添加和更改单元格等功能。

但是,我不知道如何打印 map 。我想创建一个__str__()功能来打印 map ,但我不确定如何做到这一点。我希望它像这样打印出来,用空格分隔 X 轴上的元素,用换行符分隔 Y 轴:

O O O
O O O
O O O

我见过这样的例子:

for row in map_:
    print ' '.join(row)

...这个示例以我想要的格式打印 map 。

但是,我想把它变成 __str__()函数,它返回 ' '.join(row) 的组合(在每个行元素之间打印一个空格)和 '\n'.join(map_) (在每行之间打印换行符)。

当然,我希望元素的顺序正确(打印 View 的左上角对应于 map_[0][0] 等)。

有什么办法可以用 __str__() 来做到这一点吗?功能,还是我必须求助于使用上面的打印功能?

最佳答案

这个怎么样,使用list comprehension

"\n".join([" ".join(row) for row in map_])

例如:

In [1]: map_ = [
   ...:     ['O', 'O', 'O'],
   ...:     ['O', 'O', 'O'],
   ...:     ['O', 'O', 'O']
   ...: ]

In [2]: print "\n".join([" ".join(row) for row in map_])
O O O
O O O
O O O

更直接地回答有关使用 __str__() 的问题:

def __str__(self):
    return "\n".join([" ".join(row) for row in self.map_])

关于Python:如何为嵌套列表返回具有特定格式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35098565/

相关文章:

python - 是否可以在 Pandas 的 loc 中使用 loc 来替换值?

python - 根据过滤器从python列表中删除元素

python - 使用 else pass 的列表理解

objective-c - 与 NSLog 一起使用的 "toString()"的 Objective-C 等效项是什么?

python - 我有 10000 个矢量形式的图像,如何将其转换为我的卷积神经网络?

python - 将日期字符串 (YYYY/YYYY_mm.mdf) 转换为可用的日期 Python

list - 在 Haskell 列表理解中组织元组序列

java - BST(二叉搜索树)中的字符串 toString 方法

c# - 不必要地转换为用于在 mscorlib 中调用 ToString() 的对象

python - MySQLdb Python 更新匹配行与更改行