我有一个字典列表,如下所示:
[{'id':1,'name':'Foo'},{'id':2,'name':'Bar'}]
我想将每个字典中的值转换为这样的元组列表:
[(1,'Foo'),(2,'Bar')]
我该怎么做?
答案 0 :(得分:18)
>>> l = [{'id':1,'name':'Foo'},{'id':2,'name':'Bar'}]
>>> [tuple(d.values()) for d in l]
[(1, 'Foo'), (2, 'Bar')]
答案 1 :(得分:11)
请注意,SilentGhost的答案中的方法并不能保证每个元组的顺序,因为字典及其{{1}}没有固有的顺序。因此,在一般情况下,您也可以将values()
作为('Foo', 1)
。
如果这是不可接受的,你肯定首先需要(1, 'Foo')
,那么你必须明确地这样做:
id
答案 2 :(得分:2)
这将始终在定义的order
d = {'x': 1 , 'y':2}
order = ['y','x']
tuple([d[field] for field in order])