我有两个如下列表。
mylist1 = [["lemon", 0.1], ["egg", 0.1], ["muffin", 0.3], ["chocolate", 0.5]]
mylist2 = [["chocolate", 0.5], ["milk", 0.2], ["carrot", 0.8], ["egg", 0.8]]
我想获取两个列表中共同元素的平均值,操作步骤如下。
myoutput = [["chocolate", 0.5], ["egg", 0.45]]
我目前的代码如下
for item1 in mylist1:
for item2 in mylist2:
if item1[0] == item2[0]:
print(np.mean([item1[1], item2[1]]))
然而,由于有两个for
循环(O(n^2)
的复杂度),这对于非常长的列表来说非常低效。我想知道在Python中是否有更标准/高效的方法。
mean1/len(mylist1) + mean2/len(mylist2)
的操作,这将为您获取合并列表的平均值。 - dodekja