Python lambda函数转换为字典?

时间:2014-03-10 07:06:30

标签: python dictionary lambda

我有一个字典表示列表如下:

a = [{'score': 300, 'id': 3}, {'score': 253, 'id': 2}, {'score': 232, 'id': 1}]

我是python的新手,我需要一个python lambda函数,它可以通过输出:

dict = [{3:300}, {2:253}, {1:232}]

这样我就可以找到给定键的值,如

>>> print dict[3]
>>> 300

感谢您对此的帮助。

1 个答案:

答案 0 :(得分:6)

  1. 不要将dict用作变量名称,因为这会影响内置类型名称dict;
  2. {3, 300}不是字典,{3:300}是;
  3. 您可以使用dict comprehension

    In [6]: dic = {d['id']: d['score'] for d in a}
    
    In [7]: dic
    Out[7]: {1: 232, 2: 253, 3: 300}
    

    或@Jon提到的dict构造函数是为了向后兼容,因为dict-comp仅在py2.7 +上可用:

    In [12]: import operator
        ...: dict(map(operator.itemgetter('id', 'score'), a))
    Out[12]: {1: 232, 2: 253, 3: 300}