解压缩导致 ValueError 的 zip 对象

Unpacking a zip object causing ValueError

我使用以下代码行创建了一个 zip 对象:

k=zip([1,2,3],['a','b','c'])

将其转换为列表可得到输出:

[(1,'a'),(2,'b'),(3,'c')]

但是,当我使用这行代码时

x,y=zip(*k)

它给了我这个 ValueError:

"ValueError: not enough values to unpack (expected 2, got 0)"

我一直在努力找出问题所在,但一无所获。

方法zip returns一个迭代器,所以当你打印它时,你消耗它所以之后k是空的

  • 直接应用第二个zip

    k = zip([1,2,3],['a','b','c'])
    x,y = zip(*k)
    print(x, "/", y) # (1, 2, 3) / ('a', 'b', 'c')
    
  • 将其包裹在 list 中以便多次使用

    k = list(zip([1,2,3],['a','b','c']))
    print(k)         # [(1, 'a'), (2, 'b'), (3, 'c')]
    x,y = zip(*k)
    print(x, "/", y) # (1, 2, 3) / ('a', 'b', 'c')