Python 用2个for循环列出要解包的值太多的理解

Python 用2个for循环列出要解包的值太多的理解,python,python-3.x,list-comprehension,Python,Python 3.x,List Comprehension,我正在应用2列表理解来做我的工作 actual_skill_list = [process.extractOne(skill, lookup_skill_dict.get(skill.lower()[0], set()), scorer=fuzz.QRatio)for skill in skill_list] actual_skill_list = [x for x, y in actual_skill_list if y > 80] process.extractOne返回2个值-匹配

我正在应用2列表理解来做我的工作

actual_skill_list = [process.extractOne(skill, lookup_skill_dict.get(skill.lower()[0], set()), scorer=fuzz.QRatio)for skill in skill_list]
actual_skill_list = [x for x, y in actual_skill_list if y > 80]
process.extractOne
返回2个值-匹配及其分数,如下所示
(“dkjbdsk”,80)

我正试图将以上两个列表理解合并为一个。我试过这么做-

actual_skill_list = [x for skill in skill_list for x, y in process.extractOne(
            skill, lookup_skill_dict.get(skill.lower()[0], set()), scorer=fuzz.QRatio)  if y >= 80]
它的给定-
回溯::太多的值无法解包(预期为2个)


我不确定我做错了什么

您缺少列表括号:

actual_skill_list = [x for skill in skill_list for x, y in 
[process.extractOne(
            skill, lookup_skill_dict.get(skill.lower()[0], set()), 
scorer=fuzz.QRatio)]  if y >= 80]

你一定要那样做吗?简单总比复杂好。复杂比复杂好。上面的解决方案是可行的,但为了清楚起见,这被认为是一个列表理解或其他东西。我从未在列表理解中见过方括号这仍然是列表理解。在您的原始声明中,您使用了
。。。对于x,y在实际技能列表中,如果…
。这里的
reactive\u skill\u list
是您正在迭代的元组列表。如果没有组合列表中的方括号,您只需迭代包含2个值的元组。