ValueError:要解压的值太多,无法弄清楚原因

时间:2016-03-30 05:09:01

标签: python

我有一个功能:

def store(word, info_list):
    for a, b, c, in info_list:
        data = {}
        ...

我正在打电话:

store(x[0],x[1])

哪里

x = (u'sergeev', (u'2015 afc asian cup group b', 
(u'2015 afc asian cup group b', u'sergeev', 372.57022256331544), 0.22388357256778307))

我的目标是:

a=u'2015 afc asian cup group b'
b=(u'2015 afc asian cup group b', u'sergeev', 372.57022256331544)
c=0.22388357256778307

但我得到了

in store
for a,b,c, in info_list:
ValueError: too many values to unpack

我无法找到不匹配的地方......任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

而不是使用for循环,只需解压缩元素。

def store(word, info_list):
    a, b, c = info_list

x[1](您传递给函数的值)基本上是简单元组。简单地解压缩值就足够了。

当你有一个元组元组时,你可以使用for循环。看看下面的例子:

>>> a = ((1, 2), (2, 3), (3, 4))
>>> for i, j in a:
...     print i, j  
1 2
2 3
3 4

答案 1 :(得分:0)

我不需要循环,为什么不像这样分配它:

def store(word, info_list):
    a, b, c = info_list[0], info_list[1], info_list[2]