从文件中读取数据,存储在python dict中并在python中搜索值

2024-09-29 01:36:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件,里面有这样的信息:

A , 12
B , 34
A , 54
F , 60

我想读取文件,并将信息存储在python字典中,比如:{'a':['12','54',…],B:['34',…]…}等等。但我一直纠结于如何搜索每一行。这是我的尝试:

    repo = {}
    infile = open('test10.log','r')
    lines = infile.readlines()[2:-1]
    for i in lines:
            module = ''.join(i.split(',')[:-1])
            time = ''.join(i.split(',')[1:]).replace('\n','')
            if not module in repo: 
                    repo[module] = time

谢谢你的帮助!。


Tags: 文件inlog信息字典timerepoopen
2条回答

您可以尝试使用集合中的defaultdict模块:

from collections import defaultdict

repo = defaultdict(list)
infile = open('test10.log','r')
lines = infile.readlines()[2:-1]
for item in lines:
    module, time = [a.strip() for a in item.split(',')]
    repo[module].append(time)

如果你print(dict(repo.items()))你应该得到:

{'A': ['12', '54'], 'B': ['34'], 'F': ['60']}

如果你print(list(repo.items()))你应该得到:

[('A', ['12', '54']), ('B', ['34']), ('F', ['60'])]

没有像{A:{12,54,...}, B:{34,....}这样的数据结构。但是:

repo = {}
infile = open('test10.log','r')
lines = infile.readlines()[2:-1]
for i in lines:
    module, time = [a.strip() for a in i.split(',')]
    repo.setdefault(module, []).append(int(time))

给你一份清单:

{'A': [12, 54], 'B': [34], 'F': [60]}

这就是你想要的吗?

相关问题 更多 >