Nie*_*ein 1 python for-loop tuples
非常简单的代码,我有一个带有两个值的字符extraAccessions,一个字符串和一个列表.我想循环遍历extraAccessions(在这个例子中只有一个)并使用元组中的第一个和第二个值.
extraAccessions=('MS:1000505',['value','unitName'])
for accession, fieldIdentifiers in extraAccessions:
[do something]
Run Code Online (Sandbox Code Playgroud)
但是,这给了
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)
当我做
print (extraAccessions)
Run Code Online (Sandbox Code Playgroud)
我明白了
('MS:1000505', ['value', 'unitName'])
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎有两个价值,正是所要求的
for accession, fieldIdentifiers in extraAccessions:
Run Code Online (Sandbox Code Playgroud)
所以我不明白为什么我会收到这个错误.
编辑:
而当我这样做
for accession in extraAccessions:
print accession
Run Code Online (Sandbox Code Playgroud)
我得到第一个元素MS:1000505
我们来检查你的代码:
extraAccessions=('MS:1000505',['value','unitName'])
for accession, fieldIdentifiers in extraAccessions:
...
Run Code Online (Sandbox Code Playgroud)
在这里,您将迭代extraAccessions具有两个条目的元组():
'MS:1000505'['value','unitName']然后,您尝试将每个条目依次解压缩为两个变量.这不适用于第一个条目,因为它不是长度为2.
如果您要将两个条目解压缩到两个变量中,只需使用:
accession, fieldIdentifiers = extraAccessions
Run Code Online (Sandbox Code Playgroud)
这将设定
accession 至 'MS:1000505'fieldIdentifiers 至 ['value','unitName']