对于 c、d 中的 a、b Python

新手上路,请多包涵

我有一个键列表和一个值列表,我想像这样填写字典:

  for key, value in listKeys, listValues:
     dict[key] = value

但是,我收到以下错误:

 builtins.ValueError: too many values to unpack (expected 2)

原文由 Jet Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 354
1 个回答

您希望 zip 函数 生成 tuple 来自多个输入的值的生成器:

 mydict = {}
for key, value in zip(listKeys, listValues):
     mydict[key] = value

也就是说,您可以跳过编写自己的循环的繁琐程序,让 dict 构造函数完成工作;它可以使用可迭代的键/值对来初始化自身,并完全避免 Python 级循环:

 mydict = dict(zip(listKeys, listValues))

或者如果 mydict 是一个现有的非空 dict ,使用 update 方法,它接受相同的参数:

 mydict.update(zip(listKeys, listValues))

旁注:我将您的变量重命名为 mydict ,因为隐藏像 dict 这样的内置名称是一个非常糟糕的主意。

原文由 ShadowRanger 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题