Python:使用生成器打印二维数组

2024-04-26 07:05:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我想创建一个2D数组并在以后打印它。你知道吗

self.values = [[0 for k in range(8)] for i in range(8)]

我已经覆盖了__str__(self)方法:

def __str__(self):
    s = (x.__str__() + "\n" for x in self.values).__str__()
    return s

def __repr__(self):
    return self.__str__()

问题是关于行,我在哪里创建变量s

我试过一些方法:

s = (x.__str__() + "\n" for x in self.values).__str__()

s = str((x + "\n" for x in self.values))

s = list((x.__str__() + "\n" for x in self.values))

在每一种情况下,我都明白为什么它不起作用,但我找不到一种方法如何能起作用。你知道吗

我很高兴如果有人能展示一种方法,使用发电机来创建字符串。你知道吗

大家好, 芬兰语


Tags: 方法inselfforreturndef情况range
1条回答
网友
1楼 · 发布于 2024-04-26 07:05:27

您将获得一个生成器,它将创建一个看起来有点像["1\n", "2\n"]的列表。你可能想加入这个名单:

''.join(s)

由于join允许您指定连接字符串,因此也可以从生成器中省去+ "\n"并执行以下操作:

return '\n'.join(str(x) for x in self.values)

另见https://docs.python.org/3.7/library/stdtypes.html?highlight=join#str.join

相关问题 更多 >