在使用for循环时需要解包的值太多(预期为2个)



我一直得到错误消息:太多的值要解包(预期2)当我尝试以下代码:


sheetlist = [df1, df2, df3, df4, df5]
for i, j in sheetlist :
j = i +1 
final = i.merge(j, how = "outer", on = "columnname")

final.head()

谁知道怎么解决这个问题?

这是完整的Traceback

ValueError                                Traceback (most recent call last)
<ipython-input-54-981bc6246be4> in <module>()
3 sheetlist = [df1, df2, df3, df4, df5]
4 
----> 5 for i,j in sheetlist :
6     j = i + 1
7     final = i.merge(j, how = "outer", on = "columnname")
ValueError: too many values to unpack (expected 2)

错误在这里:

for i, j in sheetlist :

出现错误是因为您试图从一个列表中解包两个值,该列表期望一个接一个地给出。

对于初学者,您需要for i in sheetlist,如@not_speshal所述。此外,请注意python中的for与许多其他语言没有什么不同,它将枚举在列表内,而不是索引。

因此,您可能需要这样的内容:for i in range(len(sheetlist)),现在i确实是有效的索引。要访问列表中索引为i的元素,请使用sheetlist[i]

最新更新