2013-11-20 72 views
2

我想定義一個函數scaryDict(),它需要一個參數(一個textfile)並按照字母順序從textfile返回字,基本上產生一個字典,但不打印任何一個或兩個字母的單詞。python字典功能,文本文件

這裏是我迄今爲止...這是不是很多,但我不知道下一步

def scaryDict(fineName): 

    inFile = open(fileName,'r') 
    lines = inFile.read() 
    line = lines.split() 
    myDict = {} 
    for word in inFile: 
     myDict[words] = [] 
     #I am not sure what goes between the line above and below 
    for x in lines: 
     print(word, end='\n') 

回答

1

你直到line = lines.split()做得很好。但你的for循環必須遍歷行數組,而不是​​。

for word in line: 
    if len(word) > 2: # Make sure to check the word length! 
     myDict[word] = 'something' 

我不知道你想用什麼字典(可能得到的字數?),但一旦你擁有了它,你可以讓你通過添加進去的話,

allWords = myDict.keys() # so allWords is now a list of words 

然後您可以按allWords排序以按字母順序排列。

allWords.sort() 
+0

我必須填寫從一個文本字一個空的字典中的字母順序 – user2816609

0

我將所有的字存儲到一組(以消除DUP的),那麼那種設置:

#!/usr/bin/python3 

def scaryDict(fileName): 
    with open(fileName) as inFile: 
     return sorted(set(word 
          for line in inFile 
          for word in line.split() 
          if len(word) > 2)) 

scaryWords = scaryDict('frankenstein.txt') 
print ('\n'.join(scaryWords)) 
0

在心裏也保持爲2.5「與」文件包含一個進入退出方法可以防止一些問題(如文件從來沒有得到關閉)

with open(...) as f: 
    for line in f: 
     <do something with line> 

獨特set

排序set

現在,你可以把它放在一起。

0

抱歉,我是晚了3年:)這裏是我的版本

def scaryDict(): 
    infile = open('filename', 'r') 
    content = infile.read() 
    infile.close() 

    table = str.maketrans('.`/()|,\';!:"?=-', 15 * ' ') 
    content = content.translate(table) 

    words = content.split() 
    new_words = list() 

    for word in words: 
     if len(word) > 2: 
      new_words.append(word) 

    new_words = list(set(new_words)) 
    new_words.sort() 

    for word in new_words: 
     print(word)