gpt4 book ai didi

python - 不工作 : indexing the words in a file in a dict by first letter

转载 作者:行者123 更新时间:2023-11-28 23:02:27 25 4
gpt4 key购买 nike

我必须基于打开的文件编写一个函数,该文件每行有一个小写单词。我必须返回一个字典,其中包含单个小写字母的键,每个值都是文件中以该字母开头的单词列表。 (字典中的键仅来自文件中出现的单词的字母。)

这是我的代码:

def words(file):    
line = file.readline()
dict = {}
list = []
while (line != ""):
list = line[:].split()
if line[0] not in dict.keys():
dict[line[0]] = list
line = file.readline()
return dict

但是,当我自己测试时,我的函数似乎并没有返回所有值。如果以某个字母开头的单词超过两个,则只有第一个单词显示为输出中的值。我做错了什么?

例如,文件应该返回:

{'a': ['apple'], 'p': ['peach', 'pear', 'pineapple'],  \
'b': ['banana', 'blueberry'], 'o': ['orange']}, ...

...但返回...

{'a': ['apple'], 'p': ['pear'],  \
'b': ['banana'], 'o': ['orange']}, ...

最佳答案

尝试这个解决方案,它考虑了不止一行中有以相同字符开头的单词的情况,并且它不使用defaultdict。我还稍微简化了函数:

def words(file):
dict = {}
for line in file:
lst = line.split()
dict.setdefault(line[0], []).extend(lst)
return dict

关于python - 不工作 : indexing the words in a file in a dict by first letter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9899875/

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