将字典列表转换为列表列表

时间:2015-07-25 13:48:37

标签: python list dictionary list-comprehension dictionary-comprehension

我知道这可以通过列表理解来实现,但我似乎无法弄明白。目前我有一个像这样的词典列表:

for (i=0; i < placeNamesArray.length; i++) {
    if (placeNamesArray[i] === reference) {
        // You now have the index you want, which is the current i.
    }
}

我试图把它变成:

 [ {'field1': 'a', 'field2': 'b'},
   {'field1': 'c', 'field2': 'd'},
   {'field1': 'e', 'field2': 'f'} ]

4 个答案:

答案 0 :(得分:5)

您可以尝试:

[[x['field2'], x['field1']] for x in l]

其中l是您的输入列表。您的数据的结果将是:

[['b', 'a'], ['d', 'c'], ['f', 'e']]

这样您可以确保field2的值位于field1

的值之前

答案 1 :(得分:3)

只需返回Python 2中的ballotbox列表,或将字典视图转换为Python 3中的列表:

dict.values()

请注意,这些值不会按任何特定顺序排列,因为不会对字典进行排序。如果您希望它们处于给定的顺序,则必须添加排序步骤。

答案 2 :(得分:0)

我不确定你想要什么样的订单,但是你不能做任何订单:

list_ = [list(_.values()) for _ in dict_list]

答案 3 :(得分:0)

您可以使用list comprehension

Python 3

>>>listdict = [ {'field1': 'a', 'field2': 'b'},
...             {'field1': 'c', 'field2': 'd'},
...             {'field1': 'e', 'field2': 'f'} ]

>>>[[a for a in dict.values()] for dict in listdict]
[['b', 'a'], ['d', 'c'], ['f', 'e']]

Python 2

>>>[dict.values() for dict in listdict]
[['b', 'a'], ['d', 'c'], ['f', 'e']]