Python 如何在从.csv文件创建的列表中查找单词的频率
我正在尝试编写一个程序,首先读取输入文件的名称,然后使用csv.reader()方法读取该文件。该文件包含由逗号分隔的单词列表。程序应输出单词及其频率(每个单词在文件中出现的次数),无任何重复 文件input1.csv有你好,猫,男人,嘿,狗,男孩,你好,男人,猫,女人,狗,猫,嘿,男孩 到目前为止,我有:Python 如何在从.csv文件创建的列表中查找单词的频率,python,list,csv,word-frequency,Python,List,Csv,Word Frequency,我正在尝试编写一个程序,首先读取输入文件的名称,然后使用csv.reader()方法读取该文件。该文件包含由逗号分隔的单词列表。程序应输出单词及其频率(每个单词在文件中出现的次数),无任何重复 文件input1.csv有你好,猫,男人,嘿,狗,男孩,你好,男人,猫,女人,狗,猫,嘿,男孩 到目前为止,我有: import csv with open('input1.csv', 'r') as wordsfile: words_reader = csv.reader(wordsfile) for
import csv
with open('input1.csv', 'r') as wordsfile:
words_reader = csv.reader(wordsfile)
for row in words_reader:
for word in row:
count = row.count(word)
print(word, count)
但我的输出是:
“你好1
第2类
男2
嘿2
狗2
男孩2
你好1
男2
第2类
女1
狗2
第一类
嘿2
男孩2“
我正在尝试输出此内容,但没有任何重复内容,我很困惑,希望您能提供帮助。尝试使用set()
我不太熟悉csv库,我不知道行是否是一个列表,如果出现错误,我也不太抱歉。
如果行是字符串,则可能可以使用
row = row.split()
list_of_words = set(row)
希望有帮助。尝试使用set()
我不太熟悉csv库,我不知道行是否是一个列表,如果出现错误,我也不太抱歉。
如果行是字符串,则可能可以使用
row = row.split()
list_of_words = set(row)
希望有帮助。导入csv
input1=输入()
将open(input1,'r')作为words文件:
words\u reader=csv.reader(words文件)
对于words\u reader中的行:
单词列表=行
列表中没有重复项=列表(dict.fromkeys(单词列表))
listlength=len(列表中没有重复项)
对于范围内的i(列表长度):
打印(列表[i]中无重复项,单词列表。计数(列表[i]中无重复项)
与Aryman的基本相同,但顺序与csv中的顺序相同
input1=输入()
将open(input1,'r')作为words文件:
words\u reader=csv.reader(words文件)
对于words\u reader中的行:
单词列表=行
列表中没有重复项=列表(dict.fromkeys(单词列表))
listlength=len(列表中没有重复项)
对于范围内的i(列表长度):
打印(列表[i]中无重复项,单词列表。计数(列表[i]中无重复项)
与Aryman的几乎相同,但顺序与csv中的顺序相同当您在循环中打印
行
和字
时,您是否看到了预期的结果?如果您现在正在使用IDE,那么现在正是学习其调试功能的好时机,例如设置断点和检查值。或者你可以花一点时间熟悉内置的。另外,在你的程序的关键点上打印东西可以帮助你追踪正在发生或没有发生的事情。@wwii我要说实话,你刚才说的我什么都不懂。我只是一个初学者,这是我们刚在课堂上学到的。当你在循环中打印行
和字
时,你看到你期望的了吗?如果您现在正在使用IDE,那么现在正是学习其调试功能的好时机,例如设置断点和检查值。或者你可以花一点时间熟悉内置的。另外,在你的程序的关键点上打印东西可以帮助你追踪正在发生或没有发生的事情。@wwii我要说实话,你刚才说的我什么都不懂。我只是一个初学者,这是我们刚刚在课堂上学到的东西。我希望我能对你的评论投赞成票,但我是新来的,代表性太低。你是对的。csv是一个列表。set()
做什么?它是如何工作的?看起来这个命令是随机的,有没有办法使它在我把它按顺序排列时是随机的?set()从列表中创建了一个集合,所以它会删除所有重复的单词。为了消除随机性,你可以使用list of words=list(set(row)),我希望我能对你的评论进行投票,但我是新来的,代表性太低。你是对的。csv是一个列表。set()
做什么?它是如何工作的?看起来这个命令是随机的,有没有办法使它在我把它按顺序排列时是随机的?set()从列表中创建了一个集合,所以它会删除所有重复的单词。要消除随机性,可以使用单词列表=列表(集合(行))