Python 2.7 ValueError:创建字典时需要多个值才能解包

Python 2.7 ValueError:创建字典时需要多个值才能解包,python-2.7,dictionary,Python 2.7,Dictionary,如下所示,我正在尝试使用现有列表创建一个新字典(student):键和值 “值”列表的其中一个元素已在外部定义为“课程”的列表中 student = {} keys = ['name', 'age', 'courses'] courses = ['Python', 'Linux', 'Selenium Webdriver'] values = ['Kapil', '29', courses] student = {key:value for key, value in zip(keys +

如下所示,我正在尝试使用现有列表创建一个新字典(student):键和值

“值”列表的其中一个元素已在外部定义为“课程”的列表中

student = {}
keys = ['name', 'age', 'courses']

courses = ['Python', 'Linux', 'Selenium Webdriver']

values = ['Kapil', '29', courses]

student = {key:value for key, value in zip(keys + values)}

print (student)
当我运行此命令时,会出现以下错误:

执行以下操作时

for key, value in zip(keys + values)
zip
生成一个由1个元素组成的
元组,遍历与
值连接的
键列表(
zip
可以接受1到任意数量的参数),1个值不适合2个目标值。所以你不是真的用值压缩键,而是添加它们

你需要:

for key, value in zip(keys,values)
在您的情况下,最好将元组直接传递给
dict
,而不是dict comprehension:

student = dict(zip(keys,values))
当做

for key, value in zip(keys + values)
zip
生成一个由1个元素组成的
元组,遍历与
值连接的
键列表(
zip
可以接受1到任意数量的参数),1个值不适合2个目标值。所以你不是真的用值压缩键,而是添加它们

你需要:

for key, value in zip(keys,values)
在您的情况下,最好将元组直接传递给
dict
,而不是dict comprehension:

student = dict(zip(keys,values))
zip(键+值)
=>
zip(键,值)
zip(键+值)
=>
zip(键,值)