1

いくつかのコメントを含むテキスト ファイルがあり、次のようなキーと値があるとします。

# The following is
# a list of words and their positions
I: 1
like: 2
to: 3, 5
go: 4
cafes: 6

これを文にするにはどうすればよいでしょうか (「私はカフェに行くのが好きです」)。最初にテキストを辞書に変換する必要があると思っていましたが、コメントを削除してキーと値に分割するのに既に問題がありました...どんな助けも素晴らしいでしょう!

4

2 に答える 2

4

ファイルを読み取り、単語と位置をタプルとしてリストに追加します。次に、そのリストを並べ替え、インデックスを削除して、単語を結合します。

with open(inputfilename) as inputfile:
    words = []
    for line in inputfile:
        line = line.strip()
        if not line or line.startswith('#'):
            continue
        word, positions = line.split(':')
        words.extend((int(p), word) for p in positions.split(','))

print ' '.join([w for p, w in sorted(words)])

デモ:

>>> with open(inputfilename) as inputfile:
...     words = []
...     for line in inputfile:
...         line = line.strip()
...         if not line or line.startswith('#'):
...             continue
...         word, positions = line.split(':')
...         words.extend((int(p), word) for p in positions.split(','))
... 
>>> print ' '.join([w for p, w in sorted(words)])
I like to go to cafes
于 2013-08-16T13:29:55.630 に答える
0

ステップ1コンテンツを辞書に読み込む

ステップ2 dictのコンテンツを並べ替えるための並べ替え。

shep3 は最後に foreach を使用して値をフェッチし、 + で連結して 文 を生成します。

于 2013-08-16T13:32:21.123 に答える