首页 > 解决方案 > 字典理解 - 动态生成键值对?

问题描述

我想达到相同的结果

{i: i+1 for i in range(4)} # {0: 1, 1: 2, 2: 3, 3: 4}

但是用 动态生成key: value部分myfunc(i),我该怎么做呢?

{i: i+1}返回或(i, i+1)不起作用的函数:

{{i: i+1} for i in range(4)} # TypeError: unhashable type: 'dict'

标签: python-3.xdictionary-comprehension

解决方案


dict(map(myfunc, range(4)))

请参阅:https ://docs.python.org/3.9/library/stdtypes.html#dict

例子:

>>> dict([(1,2), (3,4)])
{1: 2, 3: 4}
>>> dict(map(lambda x: (x, x+1), range(4)))
{0: 1, 1: 2, 2: 3, 3: 4}

推荐阅读