2016-09-20 156 views
-1

对不起,如果这是在某处,但我只是找不到解决方案,我正在寻找。我想返回我的字典的价值没有引号,并不能找出我做错了什么。有没有方法可以返回不带引号的字典值?

def read_wiktionary(): 
answer = dict() 
f = open('wiktionary.txt', 'r') 
for line in f: 
     word,value = line.rstrip('\n').split(' ') 
     answer[word] = (value) 
return answer 
+1

你可以给你的预期输出的例子吗?很难确定你说的时候没有引用的意思。 –

+0

当您打印一个字符串值时,通常会打印引号以表明它是一个字符串。字符串的实际值不包含这些引号。你能澄清一下你需要“回答”和什么不工作? – Karin

+0

>>> FREQ = read_wiktionary() >>>频率[ '的'] 56271872.0 >>>频率[ '我的'] 3277699.0 –

回答

1

该引用仅用作不同键和值之间的分隔符,因此无法删除。引号不会影响字典中的值。

0

当您读取文件时,所有内容都以字符串形式读取。要获得一个浮点值,你需要将它转换为一个浮点数。

def read_wiktionary(): 
    answer = dict() 
    f = open('wiktionary.txt', 'r') 
    for line in f: 
     word, value = line.rstrip('\n').split(' ') 
     answer[word] = float(value) 
    return answer 

顺便说一句,这是一般使用with打开一个文件,这样当它离开该块它会自动关闭很好的做法。 From the docs

在处理文件 对象时,最好使用with关键字。这具有如下优点:在 其套件结束后,即使在路上引发异常,该文件也能正确关闭。

所以,我建议:

def read_wiktionary(): 
    answer = {} 
    with open('wiktionary.txt', 'r') as f: 
     for line in f: 
      word, value = line.rstrip('\n').split(' ') 
      answer[word] = float(value) 
    return answer