gpt4 book ai didi

PYTHON:查找嵌套列表的平均值

转载 作者:行者123 更新时间:2023-11-28 20:43:17 25 4
gpt4 key购买 nike

我有一个列表:

    data=[ [["apple",2]], [["cake",5],["cake",8]], [["chocolate",3],["chocolate",9],["chocolate",10]],[["grapes",6]] ]

这个列表(data)由列表(data[x])组成,列表(data[x])由包含相同单词的列表(data[x][x])组成,每个列表都有一个数字。我想找到每个单词的平均数(任何四舍五入为整数的 float )。

例如,列表 (data[1]) 中有 2 个蛋糕,同一个列表中有数字 5 和 8。我想要这两个数字的平均值,即 7,因此 data[ 1] 将更改为 ["cake",7]

如果对列表中的每个元素都这样做,结果应该是:

    data=[["apple",2],["cake",7],["chocolate",7],["grapes",6]]

这怎么可能?谢谢:3

最佳答案

您可以在列表理解中使用 zip:

>>> from __future__ import division
>>> [[set(i).pop(),round(sum(j)/len(j),0)] for i,j in [zip(*i) for i in data]]
[['apple', 2.0], ['cake', 7.0], ['chocolate', 7.0], ['grapes', 6.0]]

此处的 zip 函数会将您的值与嵌套列表中的名称分开:

>>> [zip(*i) for i in data]
[[('apple',), (2,)], [('cake', 'cake'), (5, 8)], [('chocolate', 'chocolate', 'chocolate'), (3, 9, 10)], [('grapes',), (6,)]]

然后您可以遍历它们并计算平均值并使用 set 来选择名称集!另请注意,您已经使用了 round 函数作为您想要的平均值cake7 因为它是 6.5 。round 函数将为你完成这项工作

关于PYTHON:查找嵌套列表的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29062365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com