如何在Python字典中使用键/值对

时间:2014-04-02 00:09:45

标签: python dictionary

我写了一个简单的代码来读取文本文件。这是一个片段:

linestring = open(wFile, 'r').read()

# Split on line Feeds
lines = linestring.split('\n')

num = len(lines)
print num

numHeaders = 18

proc = lines[0]
header = {}
for line in lines[1:18]:
    keyVal = line.split('=')
    header[keyVal[0]] = keyVal[1]

    # note that the first member is {'Mode', '5'}        

    print header[keyVal[0]]   # this prints the number '5' correctly

    print header['Mode']    # this fails  

最后一个print语句会产生运行时错误:

    print header['Mode']
KeyError: 'Mode'

第一个打印语句print header[keyVal[0]]工作正常,但第二个失败! keyVal[0]是字符串文字'Mode'

为什么使用字符串'Mode'会直接失败?

2 个答案:

答案 0 :(得分:2)

没有参数的

split()将在所有连续的空格上分开,所以

'foo    bar'.split()

['foo', 'bar']

但如果你给它一个参数,它就不再为你删除空格,所以

'foo   = bar'.split('=')

['foo ', ' bar']

您需要自己清理空白。一种方法是使用列表解析:

[s.strip() for s in orig_string.split('=')]

答案 1 :(得分:1)

keyVal = map(str.strip,line.split('=')) #this will remove extra whitespace 

你有空白问题......