0

リスト内のアイテムの単語数を取得するための最良の方法について質問があります。

リストに400以上のアイテムがインデックスされています。それらはさまざまな長さです。たとえば、列挙すると、次のようになります。

for index, items in enumerate(my_list):
    print index, items

0 fish, line, catch, hook
1 boat, wave, reel, line, fish, bait
.
.
.

各アイテムは、csvファイルの個々の行に書き込まれます。対応する単語数で、隣接する列のこのテキストを補完したいと思います。Excelを使用して単語/トークンの数をうまく見つけることができますが、Pythonでこれを実行できるようにしたいので、データを処理するためにプログラム間を行き来する必要はありません。

これを行うにはいくつかの方法があると確信していますが、良い解決策をまとめることはできないようです。どんな助けでもいただければ幸いです。

4

2 に答える 2

0

私が正しく理解していれば、あなたは以下を探しています:

import csv

words = {}
for items in my_list:
    for item in items.split(', '):
        words.setdefault(item, 0)
        words[item] += 1

with open('output.csv', 'w') as fopen:
    writer = csv.writer(fopen)
    for word, count in words.items():
        writer.writerow([word, count])

これにより、1つの列に一意の単語が含まれ、次の列にその単語の出現回数が含まれるCSVが書き込まれます。

これはあなたが求めていたものですか?

于 2012-12-25T05:43:23.907 に答える
0

コメントに投稿されているように、ここでの目標は明確ではありませんが、行ごとに1つの単語と各単語の長さを含むcsvファイルを印刷する場合は、

import csv
with open(filename, 'w') as outfile:
    writer = csv.writer(outfile)
    writer.writerow(['Word', 'Length'])
    for word in mylist:
        writer.writerow([word, str(len(word))])

私がここで誤解していて、実際にあなたが持っているのが文字列のリストであり、各文字列にコンマ区切りの単語のリストが含まれている場合、代わりに次のようにします。

import csv
with open(filename, 'w') as outfile:
    writer = csv.writer(outfile)
    writer.writerow(['Word', 'Length'])
    for line in mylist:
        for word in line.split(", "):
            writer.writerow([word, str(len(word))])
于 2012-12-25T03:48:39.617 に答える