有没有一种有效的方法可以从键列表和值列表中以相同的顺序在 dict 中附加元素?
现在,我在列表中的元素上迭代一个 for 循环,然后做
dictio[key] = val
对于每一对。有内置功能吗?我是3.3。
有没有一种有效的方法可以从键列表和值列表中以相同的顺序在 dict 中附加元素?
现在,我在列表中的元素上迭代一个 for 循环,然后做
dictio[key] = val
对于每一对。有内置功能吗?我是3.3。
是的,使用zip()
:
dictio = dict(zip(keys, values))
或用于.update()
将项目添加到现有字典:
dictio.update(zip(keys, values))
该zip()
函数将两个 iterables 配对成一个元组序列,它们都dict()
愉快dict.update()
地变成键值对:
>>> keys = ('foo', 'bar')
>>> values = ('spam', 'eggs')
>>> list(zip(keys, values))
[('foo', 'spam'), ('bar', 'eggs')]
>>> dict(zip(keys, values))
{'bar': 'eggs', 'foo': 'spam'}
您可以使用 dict 理解:
dictio.update({k:v for k,v in zip(keys, values)})