2010-07-08 22 views

回答

15
>>> l = [{'id':1,'name':'Foo'},{'id':2,'name':'Bar'}] 
>>> [tuple(d.values()) for d in l] 
[(1, 'Foo'), (2, 'Bar')] 
+0

簡單,正是它所說的錫,非常感謝 – chrism 2010-07-08 09:17:45

+0

,可能是錯誤的。見下面的答案。 – 2010-07-08 09:45:31

+0

@Marco:它爲給定的鍵提供一致的順序,這個答案沒有錯。 – SilentGhost 2010-07-08 10:54:32

10

注意,在SilentGhost的答案的方法並不能保證每個元組的順序,因爲字典和他們的values()沒有內在順序。因此,在一般情況下,您可能也會得到('Foo', 1)(1, 'Foo')

如果這是不能接受的,你肯定需要的id第一,你必須做到這一點明確:

[(d['id'], d['name']) for d in l] 
+0

未指定+1字典順序。 – 2010-07-08 10:43:41

0

這將轉換字典中定義order

d = {'x': 1 , 'y':2} order = ['y','x'] tuple([d[field] for field in order])

總是元組
相關問題