python - 如何使用 python 获取字典中文件的内容?
问题描述
我有一个文件,其内容如下。它代表两个路口及其重量或距离。
a / b / 3
a / c / 5
a / d / 2
b / a / 3
b / e / 11
b / f / 12
c / a / 5
c / f / 7
d / a / 2
d / f / 8
d / g / 5
e / b / 11
e / f / 3
e / h / 3
f / b / 12
f / c / 7
f / d / 8
f / e / 3
f / g / 4
f / h / 7
f / i / 5
f / k / 4
g / d / 5
g / f / 4
g / k / 5
h / e / 3
h / f / 7
h / j / 2
i / f / 5
i / j / 3
j / h / 2
j / i / 3
j / k / 6
k / g / 5
k / f / 4
k / j / 6
我想从文件中创建一个字典或更确切地说是一个图表,如下所示:
graph = {'a':{'b':3,'c':5,'d':2},'b':{'a':3,'e':11,'f':12},'c':{'a':5,'f':7},'d':{'a':2,'f':8,'g':5},'e':{'b':11,'f':3,'h':3},'f':{'b':12,'c':7,'d':8,'e':3,'g':4,'h':7,'i':5,'k':4},'g':{'d':5,'f':4,'k':5},'h':{'e':3,'f':7,'j':2},'i':{'f':5,'j':3} , 'j':{'h':2,'i':3,'k':6} ,'k':{'g':5,'f':4,'j':6} }
解决方案
逐行读取文件替换冗余空间并准备所需的字典,其中包含所需的键和值:
res = dict()
with open('inp.txt', 'r') as f:
for line in f:
line = line.replace(" ", "").rstrip()
lst = line.split('/')
if lst[0] in res.keys():
res[lst[0]].update({lst[1]: int(lst[2])})
else:
res[lst[0]] = {lst[1]: int(lst[2])}
print(res)
输出:
{'a': {'b': 3, 'c': 5, 'd': 2}, 'b': {'a': 3, 'e': 11, 'f': 12}, 'c': {'a': 5, 'f': 7}, 'd': {'a': 2, 'f': 8, 'g': 5}, 'e': {'b': 11, 'f': 3, 'h': 3}, 'f': {'b': 12, 'c': 7}}
注意:为简洁起见,我只取了一部分数据。
推荐阅读
- javascript - 在同一个 Ajax 请求中提交一个传统的 JavaScript 对象和一个 jQuery 对象
- elixir - ExMachina“嵌套”构建
- arrays - 从数组中删除重复的 PHAsset?
- javascript - 为购物车中的商品创建有效负载数组
- rust - 为什么我的 Result 类型别名不满足 failure::Fail 特征绑定?
- swift - UIViewAnimation with constraint not working in Swift
- http-headers - 在最小的 Web 应用程序上启用 Content-Security-Policy
- javascript - 如何检查是否使用 jQuery 给出了相同的输入?
- shell - 如何使用 shell 复制和重命名多个文件
- string - 在 perl6 中将匹配对象转换为字符串