"too many values to unpack" 遍历由元组索引的字典

"too many values to unpack" iterating over dictionary indexed by tuples

我正在尝试定义一个函数,该函数 Returns 来自字典 studentPerf 的键的数据元素列表(非常大,但我已经给出了前三项)与指定索引相关,其中每个可能的值只列出一次。例如,如果字典中的键是 [('John',2),('Julie',2),('John',3),('John',1),('Julie',1) ,('Julie',3)],那么这个函数应该 return ['John','Julie'] 对于索引 0,[1,2,3] 对于索引 1。

到目前为止我一直收到错误 "ValueError: too many values to unpack (expected 2)"

studentPerf = {('Jeffery','male','junior'):[0.81,0.75,0.74,0.8],
('Able','male','senior'):[0.87,0.79,0.81,0.81],
('Don','male','junior'):[0.82,0.77,0.8,0.8]}


def select(key, index): 
    for key, index in studentPerf.keys():
        print(index)

select(0,1)

用于解包元组(此处为键..)您有 3 个值。但是,你只是解包成两个变量。也一样:

for (name, gender, year)

我不明白你的目的。

但是函数select的错误是:

  1. studentPerf.keys() return 具有 3 元组的可迭代对象
  2. 您的代码for key, index in 只需解压两个项目

你应该:

  1. for index0, index1, index2 in studentPerf.keys():
  2. for key, *index in studentPerf.keys()。这样索引将是一个二元组