我有一个这样的文件(以空白行结束)
1 hello hello
4 hello1
...
<emptyline>
我想把它变成格式字典
{"hello hello":1, "hello1":4}
... key是字符串,值是整数
我现在做什么
dic={}
for line in open(file,'rb'):
if line.strip:
idx=line.find(" ")
cnt=int(line[:idx])
key=line[idx+1:]
dic[key]=cnt
使用numpy或其他方法有更好或更短的方法吗?
答案 0 :(得分:3)
您可以split
并使用1
的第二个参数仅拆分一次。
with open('file.txt', 'r') as f:
d = {}
for line in f:
if line.strip():
value, key = line.split(' ',1)
d[key] = int(value)
将其降低为字典理解
with open('file.txt', 'r') as f:
d = {key:int(value) for value,key in [line.split(' ',1) for line in f if line.split()]}
答案 1 :(得分:1)
d = {}
with open('file2.txt') as f:
for l in f:
s = l.split(' ')
d[s[1]] = s[0]
print d
答案 2 :(得分:0)
我能得到的最短,并且应该足够有效,但有点神秘:)
with open('file.txt', 'r') as f:
rows = map(lambda l: l.strip().partition(' '), f)
d = { r[2]: int(r[0]) for r in rows if r[2] }