字典给出\ n错误,我该如何摆脱\ n?

时间:2013-11-16 12:07:45

标签: python dictionary

我有一些代码可以从.txt文件中随机生成一个单词。我希望这个词也能打印出匹配的定义,但它不起作用

这就是我目前所拥有的

keywords = {'carrot': 'Green Vegetable.',
            'apple': 'Red or Green fruit.',
            'orange': 'Orange fruit.'}

print ("Here is your keyword")
import random
with open('keywords.txt') as f:
     a = random.choice(list(f))
     print (a)

print (keywords[a])

它成功生成随机关键字但未显示关键字的定义。 这是显示的错误

, line 11, in <module>
    print (keywords[a])
KeyError: 'apple\n' 

我认为错误是建议我的那些keywords.txt文件声称关键字包含\ n但是它肯定没有,我没有在我的代码或我的.txt文件中输入任何地方。

3 个答案:

答案 0 :(得分:3)

这可能是因为空格字符,如\n或只是你常规的旧空间。您可以random.choice(list(f)).strip()删除它们。

答案 1 :(得分:0)

来自文件的行包含新行(\n)字符。

你应该去除它们。

>>> 'apple\n'.rstrip()
'apple'

>>> 'apple\n'.rstrip('\r\n') # if you want strip only trailing CR and NL.
'apple'

with open('keywords.txt') as f:
    a = random.choice([line.rstrip() for line in f])
    print (a)

答案 2 :(得分:0)

你可以这样做:

a = a.replace('\n','')