【发布时间】:2018-05-19 06:19:48
【问题描述】:
我有 2 个相互关联的列表。例如,在这里,'John' 与 '1' 相关联,'Bob' 与 4 相关联,依此类推:
l1 = ['John', 'Bob', 'Stew', 'John']
l2 = [1, 4, 7, 3]
我的问题是重复的约翰。我不想添加重复的 John,而是取与 Johns 相关的值的平均值,即 1 和 3,即 (3 + 1)/2 = 2。因此,我希望这些列表实际上是:
l1 = ['John', 'Bob', 'Stew']
l2 = [2, 4, 7]
我尝试了一些解决方案,包括 for 循环和“contains”函数,但似乎无法将它们拼凑起来。我对 Python 不是很有经验,但链表听起来可以用于此。
谢谢
【问题讨论】:
-
炖肉不是和7关联的吗?
-
也许你需要的是一个字典。你试过吗?
-
@schwobaseggl 抱歉,已修复 :)
-
@bla 是的,我确实尝试了一个 dict,但问题是,由于键只能是唯一的,因此我没有机会取 l2 中关联值的平均值,因为它会自动拒绝重复值。
-
@MythicCocoa 您可以尝试制作与
'John'关联的值列表,然后根据需要取平均值。看看这个答案,将多个值添加到字典中的同一个键:stackoverflow.com/a/47620204/3044673
标签: python arrays list for-loop append