python中如何把重复key值合并

发布于 2022-09-13 01:25:33 字数 321 浏览 13 评论 0

ls = [('没有做家务', 0.005), ('30分钟以内', 0.332), ('30-60分钟', 0.451), ('60分钟以上', 0.213), ('没有做家务', 0.017), ('30分钟以内', 0.418), ('30-60分钟', 0.421),('60分钟以上', 0.144)]

期望得到的:
ls =
[('没有做家务', 0.005,0.017), ('30分钟以内', 0.332,0.418), ('30-60分钟', 0.451,0.421), ('60分钟以上', 0.213,0.144)]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼趣 2022-09-20 01:25:33
ls = [('没有做家务', 0.005), ('30分钟以内', 0.332), ('30-60分钟', 0.451), ('60分钟以上', 0.213), ('没有做家务', 0.017), ('30分钟以内', 0.418), ('30-60分钟', 0.421),('60分钟以上', 0.144)]

ls_dic = {}  # 将 ls 的内容转存到字典 ls_dic 中
for each in ls:
  if each[0] in ls_dic:
    ls_dic[each[0]].append(each[1])
  else:
    ls_dic[each[0]] = [each[1]]

# 此时 ls_dic = {'没有做家务': [0.005, 0.017], '30分钟以内': [0.332, 0.418], '30-60分钟': [0.451, 0.421], '60分钟以上': [0.213, 0.144]}

res = []   # 结果
for k,v in ls_dic.items():
  print(k,v)             # 没有做家务 [0.005, 0.017]
  t = [k]                # t = ['没有做家务']
  for each in v:         # 将 [0.005, 0.017] 分别添加到 t 中
    t.append(each)
  
  res.append(tuple(t))   # 将 t 转为 tuple 再添加到最后的结果中

ls = res

# 最后 ls = [('没有做家务', 0.005, 0.017), ('30分钟以内', 0.332, 0.418), ('30-60分钟', 0.451, 0.421), ('60分钟以上', 0.213, 0.144)]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文