我必须根据每行有一个小写字母的打开文件编写函数。我必须返回带有单个小写字母键的字典,每个值都是以该字母开头的文件中的单词列表。 (在字典中的键是从出现在文件中的话只有字母。)不工作:用字母索引字典中的字符
这是我的代码:
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']}, ...
数Pythonic编程风格的提示:遍历一个文件的每一行,而不是'while line: line = file.readline'只需使用'for line in file:'。 – eddieantonio 2012-03-28 01:14:34
你想要代码或只是帮助吗? – jamylak 2012-03-28 01:14:40
命名变量'list'和'dict'是一个坏主意;您无法访问内置列表和字典类。 – kindall 2012-03-28 01:14:43