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

正如评论中发布的那样,您的目标不是很清楚,但是如果要打印一个每行一个单词以及每个单词的长度的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 回答
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,并在下一列中写入该单词的出现次数。

这是你要求的吗?

于 2012-12-25T05:43:23.907 回答