Python, преобразовывающий значения из dicts в кортежи

У меня есть список словарей, который похож на это:

[{'id':1,'name':'Foo'},{'id':2,'name':'Bar'}]

Я хотел бы преобразовать значения из каждого dict в список кортежей как это:

[(1,'Foo'),(2,'Bar')]

Как я могу сделать это?

8
задан SilentGhost 7 July 2010 в 22:14
поделиться

2 ответа

>>> l = [{'id':1,'name':'Foo'},{'id':2,'name':'Bar'}]
>>> [tuple(d.values()) for d in l]
[(1, 'Foo'), (2, 'Bar')]
20
ответ дан 3 November 2019 в 13:08
поделиться

Обратите внимание, что подход в ответе SilentGhost не гарантирует порядок каждого кортежа, поскольку словари и их values() не имеют собственного порядка. Поэтому в общем случае вы можете получить как ('Foo', 1), так и (1, 'Foo').

Если это неприемлемо и вам обязательно нужен сначала id, вам придется сделать это явно:

[(d['id'], d['name']) for d in l]
11
ответ дан 3 November 2019 в 13:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: