代码之家  ›  专栏  ›  技术社区  ›  StrangeQuark

分块列表打印“生成器对象块在0x05DAF8D0处”,而不是列表

  •  1
  • StrangeQuark  · 技术社区  · 8 年前

    我以前使用过这段代码,它很好,但现在它以某种方式打印“[生成器对象块在0x05DAF8D0]”而不是以块的形式打印列表。我不知道是什么让代码失败了。

     fruit = ['apple', 'pear', 'banana']
    
     def chunks(l, n):
         for i in range(0, len(l), n):
             yield l[i:i+n]
    
     list_of_lists = [(chunks(fruit, 2))]
    
     print(list_of_lists)
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   BoarGules    8 年前

    你的 print() call正在打印生成器。但您想看看生成器生成了什么。生成器是另一个列表的第一个元素。这样做可以查看其中的内容。

    print (list(list_of_lists[0]))
    

    但请注意,遍历生成器会耗尽它。因此,不要期望内容在 打印() 呼叫