У меня есть некоторые проблемы с моей функцией.Из словаря в словарь
Я делаю SQL-запрос для получения списка, в котором есть словарь, содержащий только элемент key/value. Это образец моего выхода:
myDictList = [{'id': 55, 'sigla': 'SNG'}, {'id': 62, 'sigla': 'TRP'},
{'id': 71, 'sigla': 'PCNIM'}, {'id': 72, 'sigla': 'pc2ni'},
{'id': 73, 'sigla': 'ccas'}, {'id': 74, 'sigla': 'ased1'},
{'id': 75, 'sigla': '131s'}, {'id': 76, 'sigla': 'r888'},
{'id': 56, 'sigla': 'DBL'}]
id
является уникальным (для SQL ограничения).
Я построить список id
таким образом
r_id_list = list(rid['id'] for rid in roomList)
Теперь, я бы построить Dict. как и от myDictList
:
{55:'SNG',62:'TRP',71:'PCNIM'.... and so on}
Более того, я хочу, чтобы избежать части кода так:
finalDict = {}
for element in myDictList:
finalDict.update({element['id']:element['sigla']})
Я хочу, чтобы сделать это по ряду причин:
- Я не» t хочу сделать два отдельных запроса, чтобы получить некоторые данные, которые я могу извлечь с помощью одного
- Я не хочу перебирать каждый элемент списка для извлечения
sigla
значение изr_id_list
элемента
Некоторые предложения для компактного кода, который не будет включать в себя for
цикл внутри for
цикла и увеличить сложность?
Удалите внешние квадратные скобки, и это идеально. – eumiro
спасибо, что работает. Когда я попытался сделать что-то подобное, но без '[(k ['id'], k ['sigla'])' (я делаю что-то вроде 'k ['id']: k ['sigla'] '). Теперь я понял. – DonCallisto
@lucemia - Я имел в виду «удалить», а не «заменить круглыми скобами». – eumiro