0

タスクを次の形式で出力するスクリプトがあります。

Thu Apr 04           Finish Work
                     Walk

Sat Apr 06           Collect NIC

Mon Apr 08           Run test

私はそれを辞書に分割したいので、いくつかのマッチング/フォーマットを行うことができます:

{'Thu Apr 04' : ('Finish Work', 'Walk'),
'Sat Apr 06' : 'Collect NIC',
'Mon Apr 08' : 'Run test'}

split()、replace() などの文字列関数を試しましたが、必要な形式を取得できません。

更新 # 1

スクリプトの出力を変数に割り当てて使用すると、次のようになりprint repr(output)ます。

'\nThu Apr 04           Finish PTI Video\n                     Weigh In\n\nSat Apr 06           Collect NIC\n\nMon Apr 08           Serum uric acid test\n\n'
4

2 に答える 2

1

これを試すことができます:

a = '\nThu Apr 04           Finish PTI Video\n                     Weigh In\n                         Eat out\n\nSat Apr 06           Collect NIC\n\nMon Apr 08           Serum uric acid        test\n\n'
b = {}
same_day = ''
for x in a.split('\n'):
    c = x.split('           ')
    if c[0] is '':
        for q in c:
            if q is not '':
                b.update({same_day: b[same_day] + ', ' + q.strip()})
                break
    else:
        same_day = c[0]
        b.update({c[0] : c[1]})

それは汚い。しかし、仕事を成し遂げます。入力がファイルの場合、readline を実行して x を取得できます

于 2013-04-05T19:22:46.907 に答える