python字典求平均值_Python 获取两个list列表中元素平均值的方法及示例代码

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]]

1、使用字典(dict)和for循环实现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]]

l1_as_dict = dict(mylist1)

myoutput = []

for item,price2 in mylist2:

if item in l1_as_dict:

price1 = l1_as_dict[item]

myoutput.append([item, (price1+price2)/2])

print(myoutput)

或者d = {}

for lst in (mylist1, mylist2):

for i, v in lst:

d.setdefault(i, []).append(v) # 也可以使用 collections.defaultdict

[[k, sum(v)/len(v)] for k, v in d.items() if len(v) > 1]

或者d_list1 = dict(mylist1)

d_list2 = dict(mylist2)

[[k, (v+d_list2[k])/2] for k, v in d_list1.items() if k in d_list2]

#[['egg', 0.45], ['chocolate', 0.5]]

2、使用pandas实现

安装pandas:pip install pandas

实现代码:import pandas as pd

df1 = pd.DataFrame(mylist1)

df2 = pd.DataFrame(mylist2)

res = pd.merge(df1, df2, on=0)

res['mean'] = res.mean(axis=1)

res.drop(['1_x', '1_y'], 1, inplace=True)

res.values.tolist()

[['egg', 0.45], ['chocolate', 0.5]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值