列出字典python

时间:2013-05-15 16:22:45

标签: python dictionary

file.txt的

Harry Moon, Meteor \n roger gim, astronaut \n john banks, westpac \n john banks, ASB

代码:

FILE=file.txt
filename=open(FILE,"rt")
fileread=filename.readlines()
fileread.sort()
for i in fileread:
    dict={}
    dict[i.split(',')[0]]=i.split(',')[1]
    print dict

有了这个,我就能得到以下结果:

{'Harry Moon': ' Meteor\n'}
{'john banks': ' ASB'}
{'john banks': ' westpac\n'}
{'roger gim': ' astronaut\n'}

然而,我想要的是:

{ 'Harry Moon': ' Meteor'
   , 'john banks': ' ASB'
   , 'john banks': ' westpac'
   , 'roger gim': 'astronaut' }

3 个答案:

答案 0 :(得分:1)

dict([line.strip().split(',') for line in open(FILE).readlines()])

答案 1 :(得分:1)

不要使用“dict”作为变量名,打开文件时也要使用with

with open('file.txt') as f:
   result = dict(line.strip().split(',') for line in f)

答案 2 :(得分:0)

试试这个......

file_str = open(FILE).read()

d = {}
for line in file_str.splitlines():
    d[line.split(',')[0]] = line.split(',')[1]

print d

对于非常简洁的代码,还有John Smith Optionals的回答。