2013-10-10 47 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。该函数将在第一次循环迭代后返回,并且不会超出文件的第一行。