【发布时间】:2019-07-20 01:05:01
【问题描述】:
我在这个网站上搜索过类似我的例子,但找不到答案。
我正在解析的文件是一个简单的文件,其中键值对用冒号分隔。
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'}
只是想知道对于什么是微不足道的任务是否有一个简单的理解。
感谢您提供的任何意见。
【问题讨论】:
标签: python python-3.x