我使用了一个生成器来创建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)
但是,我无法将其归入变量,因为它不会返回任何内容,因此我无法将其输出到文本文件中。我该如何解决这个问题?
答案 0 :(得分:0)
尝试my_board = list(board_generator(board))
。
生成器与常规函数的不同之处在于它要求您迭代其内容(例如,通过next
)或通过另一个函数(例如,list
或{{ 1}})。
有关详细信息,请参阅What does the “yield” keyword do?。