【问题标题】:Python Dict list of list [closed]Python字典列表列表[关闭]
【发布时间】:2015-07-27 17:25:07
【问题描述】:

所以我在这方面取得了一些进展,但我现在似乎陷入了困境。我有一个包含 3 列的文本文件,databasename, datetransactions

我已使用defaultdict 将这些列读入字典,当我打印出字典时,我得到如下内容:

databasename [['5-08-2015', '250'],['5-09-2015', '29']]

我想在 x 轴上绘制日期,在 y 轴上绘制日期,并使用数据库名称作为标题。我正在使用matplotlib.pylab 来生成我的图表。 我遇到的问题是我似乎无法正确遍历字典中的列表以获取列表中的各个数据。 这是相关函数的样子:

for file in glob.glob("*.csv"):
    data = defaultdict(list)
    for i, row in enumerate(csv.reader(open((file),'rb'))):
        if not i or not row:
            continue
        #print len(row)
        policy, server, user, _, app, database, trans = row
        data[server].append(int(trans))
    for server, trans in data.iteritems():

        f = open('C:/CIS Shared/Python Scripts/GraphData/totalTransactions.txt', 'a')
        sums = sum(trans)
        f.write(server.replace(" ","") + " " + file[5:-4] + " " + str(sums) + "\n")
        f.close()
    totTransac = open(path)
    transacDict = {}
    for line in totTransac:
        servTransactions = line.split()
        try:
            transacDict[servTransactions[0]].append(servTransactions[1:])
        except:
            transacDict[servTransactions[0]] = [servTransactions[1:]]

    for key, value in transacDict.iteritems():
        print key, ":", value

运行后我得到了

databasename: [['5-08-2015', '12'], ['5-09-2015', '10'], ['5-10-2015', '10'], ['5-11-2015', '9'],
 ['5-12-2015', '9'], ['5-13-2015', '10'], ['5-14-2015', '10'], ['5-15-2015', '10']]

我最关心的部分是如何循环遍历每个键的值并获取每个值中的单个数据。之后我可以做剩下的事情

【问题讨论】:

  • 什么?我不明白你的问题是什么
  • 我需要知道如何使用这些数据在图表上绘制点
  • 你这里只有一个相当大的函数,它以某种形式生成一些数据和一个看似无关的“接下来我该怎么做才能得到我想要的?”题。我可能遗漏了一些关键细节,但我认为您的问题还没有“准备好”。
  • 我认为您的代码的上 55% 与此无关,这是对的吗? (并且被误解了?)
  • 我最感兴趣的部分是如何循环遍历每个键的值并获取每个值中的单个数据。之后我可以做剩下的事情

标签: python list dictionary matplotlib


【解决方案1】:

我最关心的部分是如何循环遍历每个键的值并获取每个值中的单个数据。之后我可以做剩下的事情

如果我理解正确,那么您想遍历一个以列表为值的字典吗?

def process(value):
    # do something with the value

for key,value_list in dict_of_lists:
    for value in value_list:
        process(value)

【讨论】:

  • 是的,这正是我所需要的……效果很好……谢谢
猜你喜欢
  • 2016-03-15
  • 1970-01-01
  • 2021-03-03
  • 2015-05-31
  • 2023-03-08
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多