我正在读取一个包含235886
字符串的文件女巫。我正在使用with
从文件中读取所有这些字符串,并将它们附加到一个空列表中。由于文件中的每个字符串都附加了换行符\n
,因此我仅使用split()
函数来提取字符串。
当我打印列表的长度时,它显示的是其大小471772
的两倍。
我的代码在这里。
word_list = []
DICTIONARY = 'dictionary.txt'
def load_words():
with open(DICTIONARY,'r') as dictwords :
for word in dictwords:
word_list.append(word.split('\n')[0])
print(len(word_list))
return word_list
load_words()
输出显示为
235886
471772
我无法找出我做错了什么。任何帮助,不胜感激。
from data import DICTIONARY, LETTER_SCORES
word_list = []
scrabble_dict = {}
def load_words():
with open(DICTIONARY,'r') as dictwords :
for word in dictwords:
word_list.append(word.split('\n')[0])
print(len(word_list))
return word_list
load_words()
def calc_word_value(word):
sum = 0
for char in word:
if char.isalpha():
sum = sum + LETTER_SCORES[char.upper()]
return sum
def max_word_value(word_list = load_words() ):
higher_sum = 0
higher_word = None
for every_word in word_list:
present_sum = calc_word_value(every_word)
if present_sum > higher_sum:
higher_word = every_word
higher_sum = present_sum
return higher_word
if __name__ == "__main__" :
pass
答案 0 :(得分:1)
您两次调用load_words
,并且由于word_list
是全局变量,因此所有单词都被附加两次。通过将第一次调用的结果存储在变量中来对其进行更改:
l_words = load_words()
# ...
def max_word_value(word_list=l_words):
# ...