python - 来自文件的 Python 字典理解
问题描述
我正在尝试使我的python代码中的所有内容都能理解。我必须将 .txt 文件数据转换为 dict。它看起来像这样:
A .-
B -...
C -.-.
...
是的,这是摩尔斯电码。
我的代码如下所示:
def morse_file_to_dict(filename):
d = {}
for line in open(filename):
ch, sign = line.strip().split('\t')
d[ch] = sign
return d
它会返回一个正常的字典,如下所示:
{'A': '.-', 'B': '-...', 'C': '-.-.', ... }
我的问题是,我可以在一行中做这个吗?有悟性?
感谢您的时间和回答!
解决方案
你的功能可以变成:
def morse_file_to_dict(filename):
with open(filename) as fh:
return dict(l.strip().split() for l in fh)
这利用了从元组创建字典的优势。
如果有可能有两个以上的字段,您应该使用:
def morse_file_to_dict(filename):
with open(filename) as fh:
return dict(l.strip().split("\t", 1) for l in fh)
这第二个例子专门设置了sep
和maxsplit
参数str.split
推荐阅读
- jenkins - 詹金斯环境变量中的三元运算符
- sql - Postgres:用逗号分隔值的行到json对象数组
- node.js - 函数参数 - id vs object
- mysql - 我正在尝试在一个查询中从两个不同的表中选择数据
- c++ - 从函数参数推断模板类型
- java - find 200 digit prime numbers using BigInteger
- postgresql - 如何使用 Spring Boot JPA 在 Postgres 中存储几何点?
- r - 根据匹配的 2 列将行放入列表项
- api-manager - Gravitee 是否支持纯 SOAP API 集成而不转换为 REST
- python - 从 2 个 uint64 值中提取 Spooky-hash 128 位值