如何将生成器的打印结果存储在变量中以供进一步使用?

时间:2018-04-02 19:06:43

标签: python generator

我使用了一个生成器来创建10比10的'O':

board = []

for x in range(0, 10):

    board.append(["O"] * 10)

def board_generator(layout):

    for y in layout:

        yield (" ".join(y))

my_board = board_generator(board)

然后我将结果估算为变量,但当我尝试将其输出到另一个源时,我得到了这个:

<generator object board_generator at 0x0135AAF0>

我试图通过这样做获得我想要的印刷结果:

def print_board(boards):

    for i in boards:

        print(i)

但是,我无法将其归入变量,因为它不会返回任何内容,因此我无法将其输出到文本文件中。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

尝试my_board = list(board_generator(board))

生成器与常规函数的不同之处在于它要求您迭代其内容(例如,通过next)或通过另一个函数(例如,list或{{ 1}})。

有关详细信息,请参阅What does the “yield” keyword do?