У меня есть список словарей, который похож на это:
[{'id':1,'name':'Foo'},{'id':2,'name':'Bar'}]
Я хотел бы преобразовать значения из каждого dict в список кортежей как это:
[(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]