ulr*_*ich 31 python dictionary list
鉴于以下字典:
dct = {'a':3, 'b':3,'c':5,'d':3}
Run Code Online (Sandbox Code Playgroud)
如何将这些值应用于列表,例如:
lst = ['c', 'd', 'a', 'b', 'd']
Run Code Online (Sandbox Code Playgroud)
为了得到类似的东西:
lstval = [5, 3, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)
wim*_*wim 51
使用map
:
>>> map(dct.get, lst)
[5, 3, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)
使用列表理解:
>>> [dct[k] for k in lst]
[5, 3, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)
San*_*rma 14
您可以使用列表推导:
lstval = [ dct.get(k, your_fav_default) for k in lst ]
Run Code Online (Sandbox Code Playgroud)
我个人建议使用内置列表推导,map
因为它看起来很熟悉所有Python程序员,如果需要自定义默认值,则更容易解析和扩展.
您可以使用map
函数从列表中迭代键:
lstval = list(map(dct.get, lst))
Run Code Online (Sandbox Code Playgroud)
或者如果您更喜欢列表理解:
lstval = [dct[key] for key in lst]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28178 次 |
最近记录: |