我的詞典列表看起來像這樣:Python從類型的字典的值轉換爲成一個元組
[{'id':1,'name':'Foo'},{'id':2,'name':'Bar'}]
我想值從每個字典轉換成這樣的元組的列表:
[(1,'Foo'),(2,'Bar')]
我該怎麼做?
我的詞典列表看起來像這樣:Python從類型的字典的值轉換爲成一個元組
[{'id':1,'name':'Foo'},{'id':2,'name':'Bar'}]
我想值從每個字典轉換成這樣的元組的列表:
[(1,'Foo'),(2,'Bar')]
我該怎麼做?
>>> l = [{'id':1,'name':'Foo'},{'id':2,'name':'Bar'}]
>>> [tuple(d.values()) for d in l]
[(1, 'Foo'), (2, 'Bar')]
注意,在SilentGhost的答案的方法並不能保證每個元組的順序,因爲字典和他們的values()
沒有內在順序。因此,在一般情況下,您可能也會得到('Foo', 1)
爲(1, 'Foo')
。
如果這是不能接受的,你肯定需要的id
第一,你必須做到這一點明確:
[(d['id'], d['name']) for d in l]
未指定+1字典順序。 – 2010-07-08 10:43:41
這將轉換字典中定義order
d = {'x': 1 , 'y':2} order = ['y','x'] tuple([d[field] for field in order])
簡單,正是它所說的錫,非常感謝 – chrism 2010-07-08 09:17:45
,可能是錯誤的。見下面的答案。 – 2010-07-08 09:45:31
@Marco:它爲給定的鍵提供一致的順序,這個答案沒有錯。 – SilentGhost 2010-07-08 10:54:32