使用枚举返回字典

时间:2018-07-09 16:44:46

标签: python dictionary

这是我应该使用的列表:

d_list(['a','b','c'])

并且返回代码应该给我这样的输出:

{‘a’:0, ‘b’:1, ‘c’:2}

4 个答案:

答案 0 :(得分:1)

您可以为此使用enumerate字典理解

def d_list(iterable):
    return { k: i for i, k in enumerate(iterable) }

例如,您也可以使用dict(..)map(..)来做到这一点:

from operator import itemgetter

def d_list(iterable):
    return dict(map(itemgetter(slice(None, None, -1)), enumerate(iterable)))

然后生成例如:

>>> d_list(['a', 'b', 'c'])
{'a': 0, 'b': 1, 'c': 2}

答案 1 :(得分:1)

def d_list(L):
return {key:value for value, key in enumerate(L)}

这应该给您输出: {‘a’:0,‘b’:1,‘c’:2}

答案 2 :(得分:1)

def d_list(l):
    return dict(map(reversed, enumerate(l)))

d_list(['a','b','c'])
# {'a': 0, 'b': 1, 'c': 2}

答案 3 :(得分:1)

如果您的Python版本不支持字典理解,则使用dict(..) @Willem的版本会不太明显:

def d_list(L):
    return dict( (v,i) for i,v in enumerate(L) )

如果要在不使用生成器的情况下进行操作,则可以使用列表理解

def d_list(L):
    return dict( [ (v,i) for i,v in enumerate(L) ] )