gpt4 book ai didi

python - 创建一个使用列表上的键返回分数的程序

转载 作者:行者123 更新时间:2023-12-01 01:02:11 24 4
gpt4 key购买 nike

我基本上试图读取一个 txt 文件,删除字母表 (A-Z) 中不存在的所有符号和标点符号,然后生成一个输出,列出文件中的所有单词并并排显示分数。为了获得分数,我尝试将单词的每个字母与键进行比较。这个键代表了这封信的值(value)。通过将给定单词的所有字母值相加,我将得到该单词的总分。

alphakey = {'a': 5, 'b': 7, 'c': 4, 'd': 3, 'e': 7, 'f': 3,
'g': 3, 'h': 5, 'i': 2, 'j': 2, 'k': 1, 'l': 2,
'm': 6, 'n': 3, 'o': 1, 'p': 2, 'q': 1, 'r': 4,
's': 3, 't': 7, 'u': 5, 'v': 5, 'w': 2, 'x': 1,
'y': 2, 'z': 9}

这是我到目前为止所拥有的,但我完全陷入困境。

with open("hunger_games.txt") as p:
text = p.read()
text = text.lower()

text = text.split()
new = []
for word in text:
if word.isalpha() == False:
new.append(word[:-1])
else:
new.append(word)

class TotalScore():

def score():
total = 0
for word in new:
for letter in word:
total += alphakey[letter]
return total

我正在尝试得到类似的东西:

   you 5
by 4
cool 10

etc.. 对于列表中的所有单词。预先感谢您的帮助。

最佳答案

正如评论中所指出的,您不需要为此创建一个类,并且您的返回值是缩进的,否则我认为您的 score 函数可以满足您计算总和的需要分数。

如果您需要每个单词的分数,您可以(再次)使用字典来存储这些:

def word_score(word):
return sum(alphakey[l] for l in word)

def text_scores(filename):
with open(filename) as p:
text = p.read()
text = re.sub(r'[^a-zA-Z ]', '', text.lower())
return {w: word_score(w) for w in text.split()}

print(text_scores("hunger_games.txt"))

如果hunger_games.txt包含“you by Cool”,则打印:

{'you': 8, 'by': 9, 'cool': 8}

关于python - 创建一个使用列表上的键返回分数的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55697055/

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