我正在尝试创建一个将给定列表转换为给定 字典的函数(如果需要,可以在其中指定/分配值)。
例如,如果我有一个列表
['a', 'b', 'c', ..., 'z']
我想转换成这样的字典
{1: 'a', 2: 'b', 3: 'c', ..., 26: 'z'}
我知道如何使用字典理解来做到这一点
{num : chr(96 + num) for num in range(1, 26)}
但我不知道如何使它成为一个更通用的函数,该函数 可以将任何列表转换成字典。最好的方法是什么 ?
将 列表传递给 构造函数 enumerated dict
enumerated
dict
>>> items = ['a','b','c'] >>> dict(enumerate(items, 1)) >>> {1: 'a', 2: 'b', 3: 'c'}
这里enumerate(items, 1)将产生tuples的元素及其索引。 索引将从1(请注意的第二个参数 enumerate)开始。 使用此表达式,您可以定义一个函数内联,例如:
enumerate(items, 1)
tuples
enumerate
>>> func = lambda x: dict(enumerate(x, 1))
像这样调用它:
>>> func(items) >>> {1: 'a', 2: 'b', 3: 'c'}
或常规功能
>>> def create_dict(items): return dict(enumerate(items, 1))