错误:ValueError:太多值无法解包(预期3)

学习者

迭代元组时出现以下错误。我不确定要对迭代进行哪些更改。任何帮助,将不胜感激。

ValueError:太多值无法解包(预期3)

程序:-

 def convert_tuple_to_dict(self, tup):

        dt = defaultdict(list)
        temp_lst = []

        for i in range(len(tup)):

            if (len(tup[i]) == 2):
                for a, b in tup:
                    dt[a].append(b)

            if (len(tup[i]) == 3):
                print(tup[i])
                for (a, b, c) in tup[i]:
                    dt[a].append(b)
                    dt[a].append(c)

        return dict(dt)

    run = DataType()
    print(run.convert_tuple_to_dict(
        (('1328', '50434022', '53327'), (777, '5000435011607', '00720645'))))

追溯详细信息:

Traceback (most recent call last):
  File "foo/DataType.py", line 95, in <module>
    print(run.convert_tuple_to_dict(
  File "foo/DataType.py", line 86, in convert_tuple_to_dict
    for (a, b, c) in tup[i]:
ValueError: too many values to unpack (expected 3)
('1328', '50434022', '53327')

预期产量:

{'1328': ['50434022', '53327'], 777: ['5000435011607', '00720645']}
马斯林
       if (len(tup[i]) == 3):
            print(tup[i])
            for (a, b, c) in tup[i]:

在这里,您要检查tup [i]的长度,然后对其进行迭代,并尝试进一步拆开每个项目的包装。

因此,鉴于tup[i] = ('1328', '50434022', '53327')您要做的是:

a, b, c = '1328'
a, b, c = '50434022'
a, b, c = '53327'

这不太可能是您要尝试执行的操作。解决方案是不迭代元组,只需解压缩分配...

a, b, c = tup[i]
# do the thing

偶然地,在2元组的情况下您有相同的错误。

您的代码段中还有其他一些值得商bat的地方:

  • tup 根本不是一个元组,它是一系列输入,因此命名具有误导性
  • 没有索引的必要,因此您没有理由迭代range(len(...)),只需直接迭代该对象
  • 您可以使用扩展解包根本不关心输入元组的长度:
def convert_tuple_to_dict(self, in_tuples):
    dt = defaultdict(list)
    for key, *values in in_tuples:
        dt[key].extend(values)
    return dict(dt)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何修复valueError:太多值无法解包(预期3)

python ValueError:太多值无法解包(预期...。)

太多值无法解包(预期3)

OpenCV Python Numpy:ValueError:太多值无法解包(预期2)

Django-ValueError:太多值无法解包(预期2)

Pandas DataFrame apply()ValueError:太多值无法解包(预期2)

MapReduce:ValueError:太多值无法解包(预期2)

Sklearn管道引发ValueError:太多值无法解包(预期2)

Python DataFrame-ValueError:太多值无法解包(预期2)

pygame:ValueError:太多值无法解包(预期2)

Python语法错误:ValueError:太多值无法解包(预期2)

在ScikitLearn中的GroupKFold中,出现错误消息:ValueError:太多值无法解包(预期2)

太多值无法解包错误

Python ValueError:太多值无法解包

OpenCV python:ValueError:太多值无法解包

Python速记太多值无法解包错误

ValueError:太多值无法用Python中的元组列表解包(预期2)

flask wtforms-alchemy QuerySelectField ValueError:太多值无法解包(预期2)

导出serve_input_fn():ValueError:太多值无法解包(预期2)

Python(烧瓶/棉花糖)ValueError:太多值无法解包(预期2)

Django抛出ValueError:太多值无法解包(预期2),而无需更改代码

如何在Python中修复“ ValueError:太多值以至无法解包(预期2)”

为什么会出现错误“ exceptions.ValueError:太多值无法解包”?

机械化:太多值无法解包(预期2)

带有nltk的FreqDist:ValueError:太多值无法解包

ValueError:太多值无法解包-OpenCV Python HoughLines

训练分类器时出现“太多值无法解包” ValueError

Python-ValueError:太多值无法解包-为什么?

scikits.bvp_solver生成ValueError:太多值无法解包