Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;没有足够的值来解包";当你翻阅字典的时候_Python_List Comprehension - Fatal编程技术网

Python &引用;没有足够的值来解包";当你翻阅字典的时候

Python &引用;没有足够的值来解包";当你翻阅字典的时候,python,list-comprehension,Python,List Comprehension,我得到一个值错误没有足够的值来解包。当通过列表理解将字典转换为元组列表时,预期为3,得到2 #将MPN链接到销售代表 sam_parts={} 对于plmdata中的行: mpn,sam=第[5]行,第[24]行 mpn\u热=热分数[mpn] 如果sam不在sam_零件中: sam_parts[sam]={mpn:mpn_heat} elif mpn不在sam_零件中[sam]: sam_零件[sam][mpn]=mpn_热 #将sam_零件转换为元组列表 清洁零件=[(sam、mpn、mpn

我得到一个值错误
没有足够的值来解包。当通过列表理解将字典转换为元组列表时,预期为3,得到2

#将MPN链接到销售代表
sam_parts={}
对于plmdata中的行:
mpn,sam=第[5]行,第[24]行
mpn\u热=热分数[mpn]
如果sam不在sam_零件中:
sam_parts[sam]={mpn:mpn_heat}
elif mpn不在sam_零件中[sam]:
sam_零件[sam][mpn]=mpn_热
#将sam_零件转换为元组列表
清洁零件=[(sam、mpn、mpn\U热量)用于sam、mpn、mpn\U零件中的sam、mpn\U热量。项()]

令人不快的列表位于底部。为了以防万一,我给字典加了代码。我相信这里有一个简单的解决方案,我只是看不到,但我需要一双新的眼睛!提前感谢。

如前所述,
dict.items
将返回包含2个项的元组,即使关联的值是字典本身。假设您需要两个级别的键和关联的值,下面是我将如何处理它:

[(sam, mpn, mpn_heat) for sam, inner_dict in sam_parts.items() for mpn, mpn_heat in inner_dict.items()]

这本质上是一个嵌套的for循环,用于遍历“外部”字典,然后遍历其中的字典。

因为sam_parts.items()给出了一个2项元组(key,value)。我不确定tho@Pietro马塞拉和忙碌的人当然,是的,绝对是这个修好了!我甚至没有想到“sam_parts.items”只生成一个2项元组。您的嵌套for循环建议解决了这个问题,实际上为我节省了一点精力,使输出符合我的要求!谢谢你们两位。