@beduin01

Как заполнить структуру данными?

У меня есть структура данных в следующем формате. Можно представить как набор словарей или нечто подобное. Это не принципиально.

data = {
	"regNum": "",
	"maxPrice": "",
	"lots": [{
			"number": "",
			"objects": {
				"name": ""
			}
		}, {
			"number": "",
			"objects": {
				"name": ""
			}
		}
		]
	}


Мне эту структуру нужно заполнить данными:
list = [ ["regNum", 777], ["maxPrice", 950], ["number", "1"], ["number", "2"], ["name", "Apples"], ["name", "Bananas"] ]

Начал ходить по ней через рекурсию и застрял. В итоге у меня то все name Apples становятся, то все "Bananas".

Язык по сути не принципиален. Синтаксис подогнал под Python-овский.
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
@PavelMos
В этом списке разные данные нужно по разному же разбирать. Если ключ:значение regNum и maxPrice можно брать при переборе i - если i[0]==regNum то записывать data['regNum']=i[1], то соотносить номер в number и название в name нужно по их порядку. Как-то отдельно выбрать все элементы i, у которых i[0]=='number', затем все, у которых i[0]=='name', затем пройтись по двум спискам
list1=[1,2,3]
list2=['Apples','Bananas','Oranges']
list3=list(zip(list1,list2))
#[(1,'Apples'),(2,'Bananas')...]
#сформировать список для lots
lots=[{'number':i[0],'objects':{'name':i[1]}} for i in list3]
#добавить список как элемент
data['lots']=lots
Out[353]: 
[{'number': 1, 'objects': {'name': 'Apples'}},
 {'number': 2, 'objects': {'name': 'Bananas'}},
 {'number': 3, 'objects': {'name': 'Oranges'}}]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы