0

Python で分類子を作成しましたが、正常に動作します。次に、結果をテキスト ファイルに出力する必要がありますが、これも問題なく実行できます。問題は、結果自体だけでなく結果の ID も含める必要があることです。私はPythonに不慣れで、まだ構文に慣れているので、どんな助けでも大歓迎です。

    printedRow = '{id1},{result1}'.format(id1=id , result1 = result)
    print("~~~~~RESULT~~~~~")

    for k in range(0,len(pans)):
         pans.append(row[0] + ','+ p.classify(row))

    print (pans)
    print(pans, file=outfile)

分類子の結果に含める必要がある ID は、インデックス行 [0] に保持されています。このコードを実行すると、すべての結果で同じ ID が出力されます。結果は正常に出力されています。ID と結果を一致させる必要があるだけです。

どちらもリストに保持され、各リストには約 2000 の値があります。

4

1 に答える 1

0

rowあなたが何をしようとしているのか、または何であるかを定義していないため、私にはわかりませんpans。より多くの Pythonic ソース コードを使用することを検討してください。オブジェクトが任意の型のコレクションである場合は、何らかのイテレータを使用します。Enumerate は、各ループにインデックス番号を付けるのに便利です。

for n, p in enumerate(pans):
    print "pan %d is %s" % (n, p)

pansサイズが に依存するループ内に追加しているようにも見えますpans。それは永遠に続く可能性があります!

リストに追加したい場合は、次のように追加します。

newpans = pans + [x.classify(row) for x in oldpans]

メモリ内に構造を構築してからファイルに出力するのではなく、ファイルに直接書き込みます。これにより、使用するメモリがはるかに少なくなります。速度が必要な場合は、コンピューターにファイルをバッファリングさせます。

f = open("output.txt", "w")
for n, p in enumerate(pans):
    f.write("%s,%s\n" % (n, classify(p)))
f.close()
于 2012-04-29T15:14:25.987 に答える