X~~X~~ 2023-05-09 11:16 采纳率: 34.2%
浏览 17
已结题

将列表中字典相同的username和date合并,合并后保存以id数值大的一方


#数据集
data = [{id:1,'username': 'celine', 'clocking_in': datetime.datetime(2023, 5, 8, 15, 27, 10), 'date': '2023-05-08',
         'ip': '172.16.10.4','workdaily':[1]},
        {id:2,'username': 'celine', 'clocking_in': datetime.datetime(2023, 5, 8, 16, 22, 56), 'date': '2023-05-08',
         'ip': '172.16.10.4','workdaily':[2]}]


# 目标数据
data = [{id:2,'username': 'celine', 'clocking_in': datetime.datetime(2023, 5, 8, 16, 22, 56), 'date': '2023-05-08',
         'ip': '172.16.10.4','workdaily':[2]}]

将列表中字典相同的username和date合并,合并后保存以id数值大的一方

  • 写回答

2条回答 默认 最新

  • 语言-逆行者 2023-05-09 11:23
    关注

    基于new bing的编写:可能的实现方式,参考:

    data = [{id:1,'username': 'celine', 'clocking_in': datetime.datetime(2023, 5, 8, 15, 27, 10), 'date': '2023-05-08',
             'ip': '172.16.10.4','workdaily':[1]},
            {id:2,'username': 'celine', 'clocking_in': datetime.datetime(2023, 5, 8, 16, 22, 56), 'date': '2023-05-08',
             'ip': '172.16.10.4','workdaily':[2]}]
    
    merged = {}
    for d in data:
        key = (d['username'], d['date'])
        if key in merged:
            if d['id'] > merged[key]['id']:
                merged[key] = d
        else:
            merged[key] = d
    
    result = list(merged.values())
    print(result)
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月17日
  • 已采纳回答 5月9日
  • 创建了问题 5月9日