从txt文件到Python字典



如何从以下格式的文本文件中获取数据:

abc 5
defg 8
ghi 58
jklmn 450
opqrstuv 8456

并将其添加到词典中。例如:第一个是dictionary〔'abc’〕=5,最后一个是diction〔'opqrstuv’〕=8456,依此类推。我需要添加所有数据(文本文件中的每一行)

dictionary = {}
with open('path/to/file') as infile:
    for line in infile:
        key,value = line.split(" ")
        dictionary[key] = int(value)

换句话说,逐行读取文件,并设置dict,使每个键都是单个空格之前的区域,每个值都是该单个空格之后的区域,转换为int。

如果您总是有LETTERS NUMBERS,那么您可以使用regex来实现这一点,但这似乎不必要地困难。

与字典映射一样,试着思考如果键发生冲突,您将想要什么作为标准行为,例如,如果我读取了"abc 5",但在文件的早期已经有了"abc 10",那么dictionary["abc"]就存在了。

(如果你喜欢的话,这里有一个丑陋的regex解决方案:

import re
from operator import itemgetter as iget
with open('path/to/file') as infile:
    data = infile.read() # UGH
re_data = re.findall(r"([^ds]+)|([d]+)", data)
dictionary = dict(zip( map(iget(0),re_data[0::2]),map(int,map(iget(1),re_data[1::2])) ))
# DOUBLE UGH. As a rule of thumb, if you're using three map
# functions in one line, REFACTOR.
dictionary={}
with open('file.txt','r') as f:
    for line in f.readlines():
        a,b = line.split()
        dictionary[a] = int(b)

相关内容

  • 没有找到相关文章

最新更新