-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

2 に答える 2

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)
于 2013-10-10T20:35:36.240 に答える
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()

あなたのアプローチの主な問題returnは、 for ループの中にあることです。関数は最初のループ反復の後に戻り、ファイルの最初の行を超えて続行しません。

于 2013-10-10T20:36:44.980 に答える