我试图创建一个将给定列表转换为给定字典的函数(如果需要,我可以指定/赋值)。
例如,如果我有一个列表
['a', 'b', 'c', ..., 'z']
我希望转换为像这样的词典
{1: 'a', 2: 'b', 3: 'c', ..., 26: 'z'}
我知道如何使用词典理解
{num : chr(96 + num) for num in range(1, 26)}
但我无法弄清楚如何将其变成一个更通用的功能,可以将任何列表转换为字典。这里最好的方法是什么?
答案 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
。