【问题标题】:How do I zip multiple lists inside a dictionary and find mean of them如何在字典中压缩多个列表并找到它们的平均值
【发布时间】:2020-02-13 23:46:55
【问题描述】:

如何在字典中压缩列表:

somedict = {a: [1,2,3, b: [4,5,6], c: [7,8,9], d: [10,11,12]}

我想压缩所有列表值,所以它变成这样:

dlist = [[1,4,7,10], [2,5,8,11], [3,6,9,12]]

然后添加它们,使其变为:

sumlist = [21, 26, 30]

然后在最后除以每个列表的长度找到总和:

meanlist = [5.25, 6.5, 7.5]

我在想也许将列表存储在一个 numpy 数组中并调用 np.mean。

【问题讨论】:

  • zip 压缩和sum 总和。
  • 到目前为止您尝试过什么?您的字典格式错误。当您除了写一个问题之外没有尝试过任何其他事情时,就会出现这种情况。
  • 哎呀,字典写错了,我编辑了

标签: python-3.x list dictionary zip mean


【解决方案1】:

这是一个不使用 numpy 的解决方案

首先我们声明字典

somedict = {"a": [1, 2, 3], "b": [4, 5, 6], "c": [7, 8, 9], "d": [10, 11, 12]}

然后我们将字典中的每个键一起压缩到列表列表中

dlist = list(zip(somedict["a"], somedict["b"], somedict["c"], somedict["d"]))

然后我们将 sum 映射到每个子列表以创建 sum 列表

sumlist = list(map(sum, dlist))

在这里,我使用 lambda 函数创建一个未命名函数,该函数计算列表的平均值并将其映射到每个子列表。

meanlist = list(map(lambda x: sum(x)/len(x), dlist))
print("dlist: {}".format(list(dlist)))
print("Sumlist: {}".format(sumlist))
print("meanList: {}".format(meanlist))

#Output:
#dlist: [(1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12)]
#Sumlist: [22, 26, 30]
#meanList: [5.5, 6.5, 7.5]

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多