перепроведения более подробно ..Рекурсивное нахождение значений ключа до тех пор, пока их нет
Я бег в следующем сообщении об ошибке с ниже фрагментом кода, в основном ниже, что я пытаюсь сделать, ниже код работает отлично если есть только одно значение ... если значения больше, я получаю ошибку «слишком много значений для распаковки», как я могу изменить свой код без изменения исходной цели ...
- Если какой-либо из значения - это ключ без значений, удаляющих эту строку с входа
Если какое-либо из значений является ключом со значениями, для каждого значения (которое является ключевым) рекурсивно проверить его значений до тех пор, пока их нет и удалить повторяющиеся строки ... входной и выходной образец приведен ниже:
KEY VALUES 353311 344670 332807 353314 338169 334478 334478 123456 34567 123456 98670 34567 11111 353314 353311 348521 350166 350168 350169 350170 350166 348521 350168 348521 350169 348521 350170 348521 EXPECTED OUTPUT 344670 332807 353314 353311 338169 334478 123456 34567 98670 11111 348521 350166 350168 350169 350170
Код: -
from collections import OrderedDict
def main():
with open('gerrit_dependencylist.txt') as f:
dic = OrderedDict()
seen = set()
for line in f:
#print dic,line
spl = line.split()
print "SPL"
print spl
if len(spl) == 1:
key = spl[0]
v = ''
else:
print "LINE"
print line
key, v = spl
if v in dic and dic[v] == [""]:
del dic[v]
for k1,v1 in dic.items():
if key in v1:
dic[k1].append(v)
break
else:
dic[key] = [v]
if __name__ == '__main__':
main()
ВЫВОД: -
LINE
332807 353314
LINE
338169 334478
LINE
334478 123456 34567
Traceback (most recent call last):
File "tesst.py", line 28, in <module>
main()
File "tesst.py", line 18, in main
key, v = spl
ValueError: too many values to unpack