Python Extract Word / Token是否从列表中的项目开始计算?

时间:2012-12-25 01:21:45

标签: python

我对列表中的项目获取字数的最佳方法有疑问。

我在列表中索引了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中执行此操作,因此我不必在程序之间来回处理我的数据。

我确定有几种方法可以做到这一点,但我似乎无法拼凑出一个好的解决方案。任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:0)

正如评论中所发表的那样,目前还不清楚你的目标是什么,但如果是打印一个每行有一个单词的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))])

答案 1 :(得分: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])

这将在一列中写入一个包含唯一单词的CSV,并在下一列中写出该单词的出现次数。

这是你要求的吗?