有没有更符合Python风格的方法来构建这个字典?

6 投票
4 回答
502 浏览
提问于 2025-04-15 11:08

如何用最“Python风格”的方式来构建一个字典呢?假设我有一串值,每个键都是根据它对应的值计算出来的。我现在用的是下面这种方法,但我觉得可能还有更简洁的方式。注意:values 是一个与任何字典无关的列表。

for value in values:
    new_dict[key_from_value(value)] = value

4 个回答

5

Py3K:

{ key_for_value(value) : value for value in values }
18

至少它更短了:

dict((key_from_value(value), value) for value in values)
15
>>> l = [ 1, 2, 3, 4 ]
>>> dict( ( v, v**2 ) for v in l )
{1: 1, 2: 4, 3: 9, 4: 16}

在Python 3.0中,你可以使用“字典推导式”,这其实就是上面内容的简化写法:

{ v : v**2 for v in l }

撰写回答