创建一个可以将列表转换为python中的字典的函数

问题描述 投票:2回答:3

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

例如,如果我有一个列表

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

我想转换成这样的字典

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

我知道如何使用字典理解来做到这一点

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

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

python list dictionary
3个回答
8
投票

enumerated列表传递给dict构造函数

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

在这里,enumerate(items, 1)将产生元素及其指数的tuples。指数将从1开始(请注意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))

0
投票

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

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

0
投票

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

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

如果你想让字典从零开始,用n + 1替换n

© www.soinside.com 2019 - 2024. All rights reserved.