【问题标题】:list of tuples into dictionary with same keys and its average values? [duplicate]元组列表到具有相同键及其平均值的字典中? [复制]
【发布时间】:2020-11-20 04:09:22
【问题描述】:
d={}

l=[(‘202010’, 100), (‘202010’, 150), (‘202011’, 102), (‘202011’, 343)]

我试过这个只返回总和:

for key, value in l:

        d[key] = d.get(key, value)

    print(d)

...

d={’202010‘: 250, ‘202011’: 445}

我怎样才能以这种形式得到它并可能计算每个列表的平均值?

d={‘202010’: [100, 150], ‘202011’: [102, 343]}

d={‘202010’: [125.0],  ‘202011’: [222.5]}

【问题讨论】:

  • 答案@jakub链接解决了第一个问题,计算平均值只是意味着对字典中的每个值应用一个函数,这可以通过字典理解轻松完成,也可以通过其他几种方式来回答这里stackoverflow.com/questions/13063691/…
  • 改用d.setdefault(key, []).append(value)

标签: python dictionary


【解决方案1】:

这应该可行:

d = {}
count = {}

l = [('202010', 100), ('202010', 150), ('202011', 102), ('202011', 343)]

idx = 0
for x in l:
    if l[idx][0] in d:
        d[l[idx][0]] += l[idx][1]
        count[l[idx][0]] += 1
    else:
        d[l[idx][0]] = l[idx][1]
        count[l[idx][0]] = 1
    idx += 1

idx = 0
for x in l:
    d[l[idx][0]] = d[l[idx][0]] / count[l[idx][0]]

print(d)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    相关资源
    最近更新 更多