嵌套列表中每个索引点的浮点值总和

2024-09-28 01:33:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个字符串的列表:

["Apple", "Orange", "Pear"]

我有一个列表,每个列表包含3个浮点值:

^{pr2}$

我需要对嵌套列表中每个索引点的内部列表元素求和,并以以下格式输出:

[[0.5, "Apple"], [0.7, "Orange"], [0.9, "Pear"]]

我边走边学,但这超出了我目前所知的范围。任何关于如何实现这一目标的建议都会很好。在


Tags: 字符串元素apple目标列表格式建议浮点
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:08
fruits, values = ["Apple", "Orange", "Pear"], [[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]]
print zip(map(sum, zip(*values)), fruits)
# [(0.5, 'Apple'), (0.7, 'Orange'), (0.8999999999999999, 'Pear')]

在上面的代码中

^{pr2}$

将把values列表中所有相应的元素放在一起。它会产生

[(0.1, 0.4), (0.2, 0.5), (0.3, 0.6)]

现在,我们可以把它们加起来,这样就可以了

map(sum, zip(*values))

它查找values列表中所有相应元素的和。结果会是这样

[0.5, 0.7, 0.8999999999999999]

现在,我们要做的就是将它映射到对应的fruits,所以我们只需zip它。就这样:-)

因为您使用的是python3.x,其中zip返回一个迭代器而不是一个列表,所以您需要像这样获得列表

list(zip(map(sum, zip(*values)), fruits))

如果您想在没有zipmap的情况下执行此操作,可以使用

result = []
for i in range(len(fruits)):
    total = 0
    for j in range(len(values)):
        total += values[j][i]
    result.append([total, fruits[i]])
print result

相关问题 更多 >

    热门问题