没有返回正确的字典值

时间:2017-04-26 14:06:32

标签: python

我对词典很新,我对这段代码有疑问。我不明白为什么它总是超过价值0.这就像我输入的其他内容一样。它应该显示0的唯一原因是列表中缺少单词

if item in resultat.keys():
    print(item, ": {}".format(resultat[item]))
else:
    print(item, ": 0")

我正在使用的词典的例子是从txt文件中导入的:

pommes : 54
bananes
oranges : 30

输入的例子

item.py data1.txt pommes

我得到错误输出的例子:

pommes : 0

检测输出

pommes : 54

这是我正在处理的代码。

import sys

def ligne(texte, item):
    try:
        with open(texte) as ouvrir:
            mots_dict = {}
            lecture = ouvrir.readlines()
            for line in lecture:
                line = line.strip('\n')
                try:
                    mot, nombre = line.split(':')[1], int(line.split(':')[2])
                except IndexError:
                    continue
                if mot not in mots_dict.keys():
                    mots_dict[mot] = nombre
                elif mot == item:
                    raise Exception('La ligne {} est un doublon.'.format(line))
            return mots_dict
    except IOError:
        print("Le fichier", texte, "n'existe pas.")
        sys.exit()

1 个答案:

答案 0 :(得分:2)

尝试与

分开
' : ' 

不是

':'

因为如果您只使用':'进行拆分,您的代码仍然会在单词之后和数字之前保留空格