gpt4 book ai didi

python - 列表中关键字的频率

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:46 26 4
gpt4 key购买 nike

嗨,我有 2 个文本文件,我必须读取第一个文本文件,计算每个单词的频率并删除重复项,并创建一个包含该单词及其在文件中的计数的列表。

我的第二个文本文件包含关键字,我需要计算第一个文本文件中这些关键字的频率并返回结果,而不使用任何导入、字典或 zip。

我不知道如何进行第二部分,我打开了文件并删除了标点符号等,但我不知道如何找到频率我尝试过 .find() 的想法,但到目前为止还没有运气。

任何建议将不胜感激,这是我目前的代码似乎可以在关键字文件中找到关键字的频率,但不能在第一个文本文件中找到关键字的频率

def calculateFrequenciesTest(aString):

listKeywords= aString
listSize = len(listKeywords)
keywordCountList = []

while listSize > 0:
targetWord = listKeywords [0]
count =0
for i in range(0,listSize):
if targetWord == listKeywords [i]:
count = count +1

wordAndCount = []
wordAndCount.append(targetWord)
wordAndCount.append(count)

keywordCountList.append(wordAndCount)

for i in range (0,count):
listKeywords.remove(targetWord)
listSize = len(listKeywords)

sortedFrequencyList = readKeywords(keywordCountList)

return keywordCountList;

编辑-目前正在考虑再次重新打开我的第一个文件,但这一次没有将其变成列表?我认为我的错误在某种程度上来自于计算我的列表列表的频率。这些是我得到的结果类型

[[['the', 66], 1], [['of', 32], 1], [['and', 27], 1], [['a', 23], 1], [['i', 23], 1]]

最佳答案

您可以尝试以下操作:

我以单词列表为例。

word_list = ['hello', 'world', 'test', 'hello']
frequency_list = {}
for word in word_list:
if word not in frequency_list:
frequency_list[word] = 1
else:
frequency_list[word] += 1
print(frequency_list)

RESULT: {'test': 1, 'world': 1, 'hello': 2}

既然您对字典施加了限制,我就使用两个列表来完成相同的任务。我不确定它的效率如何,但它达到了目的。

word_list = ['hello', 'world', 'test', 'hello']
frequency_list = []
frequency_word = []
for word in word_list:
if word not in frequency_word:
frequency_word.append(word)
frequency_list.append(1)
else:
ind = frequency_word.index(word)
frequency_list[ind] += 1

print(frequency_word)
print(frequency_list)

RESULT : ['hello', 'world', 'test']
[2, 1, 1]

您可以将其更改为您喜欢的方式或根据您的意愿重构它

关于python - 列表中关键字的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44096503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com