将输入数据转换为字典(没有单个定界符)

时间:2019-06-01 15:22:41

标签: python-3.x dictionary

我正在尝试将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}

谢谢您的帮助:)

1 个答案:

答案 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()

在这里,*_使用任意数量的值-但不是第一个或最后一个,因为keyvalue在它的前后,并且都消耗一个值。符号*表示任意大小,而_是常规名称,通常用于未使用的值。