首页 > 解决方案 > 如何删除列表中的重复项并将其在另一个列表中的相应值(按索引位置)更改为平均值?

问题描述

假设我有两个列表:

list1 = [1200,1200,1200,2000]
list2 = [12000,14000,13000,30000]

如何删除 list1 中的重复项并取 list2 中所有相应值的平均值?例如 1200 与 12000 匹配,1200 与 14000 匹配,1200 与 13000 匹配 --> 删除重复的 1200 并取 (12000,14000 和 13000) 的平均值并将其返回到 list2 (13000) 中的位置。这应该产生:

list1new = [1200,2000]
list2new = [13000,30000]

谢谢

标签: pythonlistlist-comprehension

解决方案


尝试:

from statistics import mean

list1 = [1200, 1200, 1200, 2000]
list2 = [12000, 14000, 13000, 30000]

tmp = {}
for a, b in zip(list1, list2):
    tmp.setdefault(a, []).append(b)

list1new, list2new = [], []
for k, v in tmp.items():
    list1new.append(k)
    list2new.append(mean(v))

print(list1new)
print(list2new)

印刷:

[1200, 2000]
[13000, 30000]

推荐阅读