Мне нужно преобразовать приведенный выше список кортежей вложенным словаря без перезаписи значения, как показано ниже в питонаСписок кортежей вложенным словаря без перекрывая
[('a', '1'),
('b', 'true'),
('b', 'none'),
('a', '2'),
('b', 'true'),
('a', '3'),
('b', 'false')]
{'a': {'1' : { 'b' : ('true','none')},
'2' : { 'b' : ('true')},
'3' : { 'b' : ('false')}}}
Преобразование каждого кортежа в словарь, используя
dict()
и слияние словаря не работает. Есть ли какой-нибудь питонический способ сделать это?
Ваша проблема неясна. Вы уверены, что каждый кортеж будет «a» или «b», за которым следует целое число в строковой форме или элемент данных для размещения в кортеже? Являются ли целые числа (в строковом формате) гарантированными последовательными? [Должен сказать, я не вижу смысла в такой структуре словаря, только с одним «а» и с повторяющимися «b'''s» - ни одна из которых не добавляет никакой информации.] –
Я предложу вы перебираете свой список и разлагаете его на 'key' и' value' из его кортежа, а затем проверяете, существует ли 'key' в вашем' словаре', получая его предыдущее значение «tuple», преобразовывая его в «list», добавляя new 'value', а затем снова сделать его« tuple »и установить его как новый словарь« key ». Если это неясно, дайте мне знать, и я дам ** реальный код python ** * ASAP * ':)' –
@RoryDaulton Да, каждый кортеж будет 'a' или 'b', за которым следуют некоторые данные, которые будут строка. Целые числа, показанные здесь, например. Это не должно быть последовательным. – Alex