python - 使用字典理解将文件中的键、值解析为字典
问题描述
我在这个网站上查看了像我这样的例子,但找不到答案。
我正在解析的文件是一个简单的文件,其中键值对用冒号分隔。
one:two
three:four
five:six
seven:eight
nine:ten
sample:demo
我认为应该有一个使用字典理解的简单解决方案。
我的第一次尝试是
fin = open('f00.txt', 'r')
L = {kv[0]:kv[1] for line in fin for kv in line.strip().split(':')}
这产生了
{'o': 'n', 't': 'e', 'f': 'i', 's': 'a', 'e': 'i', 'n': 'i', 'd': 'e'}
我能够得到结果的一种方法是
L = {line.strip().split(':')[0]:line.strip().split(':')[1] for line in fin}
但这需要调用split
两次(索引为 0 和 1)
我能够获得结果的另一种方法是:
d = {}
for line in fin:
kv = line.strip().split(':')
d[kv[0]] = kv[1]
{'one': 'two', 'three': 'four', 'five': 'six', 'seven': 'eight', 'nine': 'ten', 'sample': 'demo'}
只是想知道是否对什么是微不足道的任务有一个简单的理解。
感谢您提供的任何投入。
解决方案
您可以使用dict
理解:
result = dict(i.strip('\n').split(':') for i in open('filename.txt'))
输出:
{'one': 'two', 'three': 'four', 'five': 'six', 'seven': 'eight', 'nine': 'ten', 'sample': 'demo'}
推荐阅读
- php - Laravel query on exact minute
- java - Passing spinner data to other field
- xml -
- javascript - Module not found when new dependency is installed
- android - SQLite 表已删除,新表未创建
- javascript - 谷歌地图标记图标笔画重量动态增加以显示警报
- ruby-on-rails - 我无法使用 haml 和 rails6 运行基本的 rspec 测试
- c - 在函数调用中省略与号
- c# - 将对象添加到列表时,不执行构造函数
- java - 如何从输入中获取默认值到 servlet?