2013-10-10 74 views
-1

我有一個啓動文件,該文件具有值由逗號分隔的每一行,像這樣:詞辭典問題

hello,welcome 
hi, howareyou 
hola,comoestas 

我想利用這些話,並把它們放入一個字典,以便他們是鍵/值對。然後我試圖要求一個密鑰並返回相應的值。我相信我很接近,所以任何幫助將不勝感激。此外,我是一個初學者如此簡單的代碼是最好的。

def CreateDictionary(): 


    WordDictionary = open('file.csv', 'r') 
    for line in WordDictionary: 
     mylist = line.split(',') 
     return(mylist) 


def main(): 

    cd = CreateDictionary() 
    text=input('input text:') 
    for x in cd.values(): 
     if x == text: 
      word=cd[x] 
      print(word) 

main() 
+4

所以a)幾分鐘前你問了一個[關於這個問題](http://stackoverflow.com/questions/19304591/converting-file-to-key-value-dictionary),並沒有使用過這裏的答案和b)如果你可以在你的問題中解釋你期望會發生什麼和實際發生的事情,這將有所幫助 – YXD

+1

我感覺他/他被答案困惑 - 他們有點高級(雖然很好。 )@ user2844776,可以在給定的答案中隨時要求澄清(儘管Python文檔也有很大的幫助 - 學習閱讀這些是成爲一名優秀開發人員的重要組成部分)。 – thumbtackthief

+0

我曾問過之前的一個相關問題,我得到的答案稍微超過了我的頭,它產生了一個錯誤。我希望輸入「hello」並獲得「welcome」打印。現在我得到一個「屬性錯誤:列表對象沒有屬性值」 – user2844776

回答

1
def makeDict(infilepath): 
    answer = {} 
    with open(infilepath) as infile: 
    for line in infile: 
     key,val = line.strip().split(',') 
     answer[key] = val 
    return answer 

def main(infilepath): 
    cd = makeDict(infilepath) 
    key = input('input text: ') 
    if key in cd: 
    print(cd[key]) 
    else: 
    print("'%s' is not a known word" %key) 
0

這裏您可以編輯您的解決方案來創建一個字典的方式。

def CreateDictionary(): 
    ret_dict = {} 
    with open('file.csv', 'r') as WordDictionary: 
     for line in WordDictionary: 
      parts = line.split(',') 
      ret_dict[parts[0]] = parts[1] 
    return ret_dict 


def main(): 
    cd = CreateDictionary() 
    text = raw_input('input text:') 
    word = cd[text] 
    print word 

main() 

你的方法的一個主要問題是你在for循環中有return。該函數將在第一次循環迭代後返回,並且不會超出文件的第一行。