我对列表中的项目获取字数的最佳方法有疑问。
我在列表中索引了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中执行此操作,因此我不必在程序之间来回处理我的数据。
我确定有几种方法可以做到这一点,但我似乎无法拼凑出一个好的解决方案。任何帮助,将不胜感激。
答案 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,并在下一列中写出该单词的出现次数。
这是你要求的吗?