创建具有理解能力的字典

是否可以使用列表理解语法来创建字典?

例如,通过迭代键和值对:

d = {... for k, v in zip(keys, values)}

答案 1

使用字典理解(Python 2.7及更高版本):

{key: value for (key, value) in iterable}

或者,对于更简单的情况或早期版本的Python,请使用dict构造函数,例如:

pairs = [('a', 1), ('b', 2)]
dict(pairs)                         #=> {'a': 1, 'b': 2}
dict([(k, v+1) for k, v in pairs])  #=> {'a': 2, 'b': 3}

给定单独的键和值数组,使用带有 zip 的构造函数:dict

keys = ['a', 'b']
values = [1, 2]
dict(zip(keys, values))  #=> {'a': 1, 'b': 2}
2) "zip'ped" from two separate iterables of keys/vals
dict(zip(list_of_keys, list_of_values))

答案 2

在 Python 3 和 Python 2.7+ 中,字典推导如下所示:

d = {k:v for k, v in iterable}

对于Python 2.6或更早版本,请参阅fortran的答案