Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 21, 2016 17:26:21

Kaloed
Зарегистрирован: 2016-09-21
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

извлечение данных из многомерных массивов

Добрый день, не так давно начал изучать язык, множество затруднений возникает, словом,взываю о помощи.
Начал решать задачу по написанию алгоритма Хаффмена, и вроде все понятно, но столкнулся с трудностью, которую не могу преодолеть.
На входе есть 2 массива, один с весом, другой со знакоами, порядковые номера весов и знаков совпадают. Дальше создаю массив, который отражает структуру бинарного дерева. Вот пример :

 a=[1,2,3,4,5,6,7,8,9]
b=['a','b','c','d','e','f','g','h','x']
while len(a)!=1:
    zna= [b[0],b[1]]
    z=a[0]+a[1]
    a.append(z)
    a.sort()
    b.insert(a.index(z),zna)
    del a[1]
    del a[0]
    del b[1]
    del b[0]
print(b)
[[[['d', 'e'], 'x'], [[[['a', 'b'], 'c'], 'f'], ['g', 'h']]]]
То есть, получаю многомерный массив, где каждый одиночный элемент- лист, а элемент массив- ветвление.
Собственно, вроде как замечательно, но дальше надо присвоить всем элементам значения, то есть на данном примере первым идет символ “х”, ему надо присвоить значение 00, элементам d и e присваиваются значения 011 и 010.
С этой задачей(в общем виде) я вообще ну ниак не могу справиться. Понимаю, что наверняка отнють не самое изящное решение данной задачи хочу сотворить, но может есть какой способ довести это до ума. Искренне ваш!

Отредактировано Kaloed (Сен. 21, 2016 18:26:41)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version