【问题标题】:How to create a value: index dict from a python list? [duplicate]如何创建一个值:python 列表中的索引字典? [复制]
【发布时间】:2018-01-04 11:52:14
【问题描述】:

我有一个清单:

a = ['a', 'b', 'c']

我想得到字典:

b = {'a':0, 'b':1, 'c':2}

最pythonic的方法是什么?

【问题讨论】:

  • 你试过什么?然后我们可以告诉你它是否是 Pythonic。

标签: python list dictionary enumerate


【解决方案1】:

以下内容对您有帮助吗?

b = dict(map(lambda t: (t[1], t[0]), enumerate(a)))

例子:

>>> dict(map(lambda t: (t[1], t[0]), enumerate(['a', 'b', 'c'])))
{'b': 1, 'c': 2, 'a': 0}

【讨论】:

  • 你的答案更快还是来自 Dark 的?
【解决方案2】:

执行此操作的最简单(也是 imo 最 Pythonic)的方法是:

b = dict(enumerate(a))

【讨论】:

  • 你必须交换键和值。
  • 在您的问题中,目标字典将数字作为键。
  • 哦,你是对的。标题是正确的,但我在问题正文中写错了。对不起。
【解决方案3】:
a = ['a','b','c']
b = dict(enumerate(a))
print(b)

它会产生:

{0: 'a', 1: 'b', 2: 'c'}

【讨论】:

  • 你必须交换键和值。
【解决方案4】:

使用index:

a = ['a', 'b', 'c']
dict_a = {}
for x in a:
    dict_a[a.index(x)] = x
print(dict_a)

【讨论】:

    猜你喜欢
    • 2011-02-09
    • 2021-06-16
    • 2019-10-30
    • 2013-02-17
    • 2021-04-17
    • 2018-12-15
    • 1970-01-01
    • 2016-10-05
    • 2021-07-12
    相关资源
    最近更新 更多