这是我应该使用的列表:
d_list(['a','b','c'])
并且返回代码应该给我这样的输出:
{‘a’:0, ‘b’:1, ‘c’:2}
答案 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) ] )