3

我使用以下代码行创建了一个 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)"

我一直试图找出问题所在,但无法弄清楚任何问题。

4

1 回答 1

4

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

  • zip直接应用第二个

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

    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')
    
于 2020-06-01T17:49:28.460 回答