非常简单的代码,我有一个包含两个值的元组 extraAccessions,一个字符串和一个列表。我想遍历 extraAccessions(在此示例中只有一个)并使用元组中的第一个和第二个值。
extraAccessions=('MS:1000505',['value','unitName'])
for accession, fieldIdentifiers in extraAccessions:
[do something]
然而,这给出了
ValueError: too many values to unpack
当我做的时候
print (extraAccessions)
我明白了
('MS:1000505', ['value', 'unitName'])
这对我来说似乎是两个值,正是在
for accession, fieldIdentifiers in extraAccessions:
所以我不明白为什么会出现此错误。
编辑:
当我这样做的时候
for accession in extraAccessions:
print accession
我得到第一个元素MS:1000505
请您参考如下方法:
让我们检查一下您的代码:
extraAccessions=('MS:1000505',['value','unitName'])
for accession, fieldIdentifiers in extraAccessions:
...
在这里,您正在迭代具有两个条目的元组 (extraAccessions):
'MS:1000505'['value','unitName']
然后您将尝试依次将每个条目 解包到两个变量中。这不适用于第一个条目,因为它的长度不是二。
如果您希望将两个条目解压到两个变量中,只需使用:
accession, fieldIdentifiers = extraAccessions
那会设置
加入到'MS:1000505'fieldIdentifiers到['value','unitName']
