繁体   English   中英

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

[英]read data from file, store in a python dict and search for values in python

我有一个文本文件,其中包含以下信息:

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

我想读取文件,并将信息存储在python词典中,如下所示:{'A':['12','54',...],B:['34',....] ...} 等等。 但是我对如何逐行搜索每个A感到困惑。 这是我尝试过的:

    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

谢谢你的帮助!。

没有像{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]}

这是你想要的吗?

您可以尝试使用collections模块中的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'])]

看到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM