字典键包含回车符 - Python

时间:2014-11-02 10:30:49

标签: python dictionary carriage-return

我在Python脚本中有一本字典。由于dict.get(key)返回None,因此无法通过给定键获取任何值。

所以我打印了dict的那些键,打印返回了这段文字:[u'2\r', u'G\r', u'\\\r', u'q\r', u'%\r', ' ', u'O\r', u'd\r', u'y\r', u'-\r', u'B\r', u'W\r', u'l\r', u'5\r', u'J\r', u'_\r', u't\r', u'(\r'.......]

我很好奇每个键是否包含回车符号。我不明白为什么会这样。

填写dict的代码:

prevChar = ' '
        self.saDictA[' ']=[]
        for i in range(0,len(self.saA)):
            currentChar = self.stringA[self.saA[i]]
            if currentChar == prevChar:
                self.saDictA[prevChar].append(i)
            else:
                self.saDictA[currentChar]=[i]
                prevChar = currentChar

正如您在上面的代码中看到的,每个键应该是一个单独的char,所以我不明白为什么键包含'\ r'符号。

编辑:我在保存之前尝试检查dict中每个键的len,然后在加载之后。我已经意识到在保存这个lib之前,每个键的长度都等于1但是在加载之后,每个键的长度都是2。

以下是代码:

import cPickle as pickle

def ssaDictA():
        for i in self.creation.saDictA.keys():
            print len(i)
        with open('saDictA','w+') as f:
            pickle.dump(self.creation.saDictA,f)

输出: 1 1 1 ... 1

def lsaDictA():
        with open('saDictA','rb') as f:
            dict = pickle.load(f)
        for i in dict.keys():
            print len(i)
        return dict

输出: 2 2 2 ... 2

pickle是cPickle - 将cPickle导入为pickle 哪个可能是问题?

0 个答案:

没有答案