创建一个可以将列表转换为python

时间:2018-01-26 02:02:26

标签: python list dictionary

我试图创建一个将给定列表转换为给定字典的函数(如果需要,我可以指定/赋值)。

例如,如果我有一个列表

['a', 'b', 'c', ..., 'z']

我希望转换为像这样的词典

{1: 'a', 2: 'b', 3: 'c', ..., 26: 'z'}

我知道如何使用词典理解

{num : chr(96 + num) for num in range(1, 26)}

但我无法弄清楚如何将其变成一个更通用的功能,可以将任何列表转换为字典。这里最好的方法是什么?

3 个答案:

答案 0 :(得分:8)

How to get all repositories of a specific GitHub user列表传递给enumerated构造函数

>>> items = ['a','b','c']
>>> dict(enumerate(items, 1))
>>> {1: 'a', 2: 'b', 3: 'c'}

此处enumerate(items, 1)将生成tuple个元素及其索引。指数将从1开始(注意 dict的第二个参数)。使用此表达式,您可以定义内联函数,如:

>>> func = lambda x: dict(enumerate(x, 1))

像以下一样调用它:

>>> func(items)
>>> {1: 'a', 2: 'b', 3: 'c'}

或常规功能

>>> def create_dict(items):
        return dict(enumerate(items, 1))

答案 1 :(得分:0)

如果键只是list中元素的索引,如示例所示:

{i+1: x for i, x in enumerate(mylist)}

答案 2 :(得分:0)

遍历列表并将每个值分配给一个数字(从1开始)。

def list_to_dict(items):
    return {n + 1: items[n] for n in range(len(items))}

如果您希望字典从零开始,请将n + 1替换为n