1

詳しくは再投稿..

以下のコードで次のエラーが発生しています。基本的に以下は私がやろうとしていることです。値が1つしかない場合、以下のコードは正常に機能します...値がそれ以上の場合、「解凍する値が多すぎます」というエラーが表示されます"、元の目標を変更せずにコードを変更するにはどうすればよいですか...

  1. 値のいずれかが値のないキーである場合、入力からその行を削除します
  2. 値のいずれかが値を持つキーである場合、値 (キー) ごとに値がなくなるまで再帰的にチェックし、重複する行を削除します...入力と出力のサンプルを以下に示します。

    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
4

1 に答える 1