Python将两个元素的元组映射为key:value dict

时间:2018-12-07 14:49:07

标签: python

我有一个rest API端点,它以JSON格式返回可用国家/地区的列表,例如:

[["ALL","Albania Lek"],["AFN","Afghanistan Afghani"],["ARS","Argentina Peso"],["AWG","Aruba Guilder"],["AUD","Australia Dollar"]]

我需要将其转换为

{
"ALL":"Albania Lek",
"AFN":"Afghanistan Afghani",
"ARS":"Argentina Peso"
}

如何快速有效地做到这一点?

3 个答案:

答案 0 :(得分:4)

dict()构造函数直接根据键值对的序列构建字典,如documentation中所述。如此简单:

the_list = [['ALL', 'Albania Lek'],
            ['AFN', 'Afghanistan Afghani'], 
            ['ARS', 'Argentina Peso'], 
            ['AWG', 'Aruba Guilder'],
            ['AUD', 'Australia Dollar']]

dict(the_list)

=> {
     'AWG': 'Aruba Guilder',
     'ALL': 'Albania Lek', 
     'ARS': 'Argentina Peso',
     'AFN': 'Afghanistan Afghani',
     'AUD': 'Australia Dollar'
   }

答案 1 :(得分:0)

我认为

{k:v for k,v in the_list}

比dict(the_list)更好,因为它不调用函数。因此,基于性能的理解将获胜。

查看测试:https://doughellmann.com/blog/2012/11/12/the-performance-impact-of-using-dict-instead-of-in-cpython-2-7-2/

并且: https://medium.com/@jodylecompte/dict-vs-in-python-whats-the-big-deal-anyway-73e251df8398

答案 2 :(得分:-1)

另一种内衬选项是dict理解力

{x[0]:x[1] for x in the_list}