python - 如何删除列表中的重复项并将其在另一个列表中的相应值(按索引位置)更改为平均值?
问题描述
假设我有两个列表:
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]
谢谢
解决方案
尝试:
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]
推荐阅读
- php - 如何在ajax成功中使用数据表?
- c++ - 这两个表达式在 C++ 中是否相同?
- c# - 填充三维字典会在 C# 中产生奇怪的结果
- python-3.x - 连接一个新列并重命名它
- c - gnu链接器链接的文件的入口点地址是什么?
- go - 逃避反弹golang
- android - “创建新项目”按钮显示非 Android 项目创建屏幕
- php - 如何在没有 PHP 邮件的情况下发送表单数据?
- swift - Swift 错误 - *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:无法识别的选择器发送到实例
- spring - 如何使用 Spring Boot 订阅/关注用户