对于以下类型的文件
Hannover Magdeburg 148 Bremen Dortmund 23 Hannover Kassel 165 Magdeburg Berlin 166
如何存储
等值my_dictionary= {"from":Hannover, "to":Magdeburg, "distance":148 }
所有在同一个词典/列表/元组
<pre>with open('input1.txt') as my_file:
lines=my_file.read().splitlines()
for i in range(len(lines)):
print lines[i]
my_file.close()
my_tuple={}
for i in range(len(lines)):
j=0
my_list = lines[i].split(' ',1)
my_tuple["from"]=my_list[j]
my_tuple["to"][i]=my_list[j+1]
my_tuple["distance"][i]=my_list[j+2]
for i in range(len(lines)):
print my_list['from'][i]</pre>
答案 0 :(得分:1)
data = '''Hannover Magdeburg 148
Bremen Dortmund 23
Hannover Kassel 165
Magdeburg Berlin 166'''
data = data.split()
data = [data[i:i + 3] for i in xrange(0, len(data), 3)]
# [['Hannover', 'Magdeburg', '148'], ['Bremen', 'Dortmund', '23'], ['Hannover', 'Kassel', '165'], ['Magdeburg', 'Berlin', '166']]
data = [{k: v for (k, v) in zip(('from', 'to', 'distance'), el)}
for el in data]
print data
[{'distance': '148', 'from': 'Hannover', 'to': 'Magdeburg'},
{'distance': '23', 'from': 'Bremen', 'to': 'Dortmund'},
{'distance': '165', 'from': 'Hannover', 'to': 'Kassel'},
{'distance': '166', 'from': 'Magdeburg', 'to': 'Berlin'}]
答案 1 :(得分:0)
csv.DictReader
可以为您完成工作:
import csv
import pprint
with open('data.txt') as f:
reader = csv.DictReader(f,fieldnames='from to distance'.split(),delimiter=' ')
L = list(reader)
pprint.pprint(L)
输出:
[{'distance': '148', 'from': 'Hannover', 'to': 'Magdeburg'},
{'distance': '23', 'from': 'Bremen', 'to': 'Dortmund'},
{'distance': '165', 'from': 'Hannover', 'to': 'Kassel'},
{'distance': '166', 'from': 'Magdeburg', 'to': 'Berlin'}]