我正在尝试将file.txt转换为字典。我知道分隔符是否只使用过一次,那么代码如下:
dict = {}
with open('file.txt') as input_file:
for line in input_file:
entry = line.split(":")
dict[entry[0].strip()] = entry[1].strip()
但是,如何将输入文件转换为没有明确分隔符的字典?
file.txt:
cats****5
doggie**6
ox******7
输出:
dict = {'cats':5, 'doggie':6, 'ox':7}
谢谢您的帮助:)
答案 0 :(得分:0)
您可以像以前一样简单地在分度器上拆分,但是采用第一个和最后字段:
for line in input_file:
entry = line.split("*")
dict[entry[0].strip()] = entry[-1].strip()
负索引从列表的末尾获取元素-索引-1
是最后一个元素,-2
是倒数第二个元素,依此类推。
您还可以使用解压缩功能,该功能允许自行记录变量名:
for line in input_file:
key, *_, value = line.split("*")
dict[key.strip()] = value.strip()
在这里,*_
使用任意数量的值-但不是第一个或最后一个,因为key
和value
在它的前后,并且都消耗一个值。符号*
表示任意大小,而_
是常规名称,通常用于未使用的值。