• 合并去重


    # 2个列表中的字典,根据字典的指定字段:tag_info去重
    
    a = [{'version': '13', 'tag_info': 'tag:shifou-3232661', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'},
         {'version': '12', 'tag_info': 'tag:shifou-3232662', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'},
         {'version': '11', 'tag_info': 'tag:shifou-3232663', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'},
         {'version': '5', 'tag_info': 'tag:shifou-3232664', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'}]
    
    b = [{'version': '133', 'tag_info': 'tag:shifou-3232666', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'},
         {'version': '122', 'tag_info': 'tag:shifou-3232666', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'},
         {'version': '113', 'tag_info': 'tag:shifou-3232663', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'},
         {'version': '54', 'tag_info': 'tag:shifou-3232664', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'}]
    
    # 输出
    # c = [
    #     {'tag_info': 'tag:shifou-323266', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'},
    #     {'tag_info': 'tag:shifou-323266', 'commit_id': '720eb278b7efe5b259413190a75c6f2be984bade'}
    # ]
    
    tag_info_b = [ele["tag_info"] for ele in b]
    result = []
    # 求a、b的交集:
    for ele in a:
        tag_info = ele["tag_info"]
        if tag_info in tag_info_b:
            result.append(ele)
    
    print(result)
    # 一个列表中包含多个字典,根据字典key去重
    
        # 待合并的项目信息,不同需求中可能包含重复的项目(不同需求包含相同project_id), 但分支不同,需要把其中每个分支都merge到master
        pc_values = ProjectConfig.objects.filter(demand_id__in=demand_id_lst).values("demand_id", "branch", "project_id",
                                                                                "project_name", "git_url", "env", "stage")
    
        # 合并分支前按project_id、branch去重, 正常来说:不同需求的项目,分支一定不同
        result = []
        _tmp = []
        for i in pc_values:
            unique_key = str(i["project_id"]) + i["branch"]
            if unique_key not in _tmp:
                result.append(i)
            _tmp.append(unique_key)
  • 相关阅读:
    高级软件工程2017第2次作业—— 个人项目:四则运算题目生成程序(基于控制台)
    高级软件工程2017第1次作业
    2017高级软件工程 课程信息
    15061009-第0次作业(阅读与感想)
    新的開始!第一次作業
    软工实践第一次作业
    OO第四单元作业总结
    OO第二单元作业总结
    OO第一单元作业总结
    Dell BOSS 卡是什么
  • 原文地址:https://www.cnblogs.com/yum777/p/14803770.html
Copyright © 2020-2023  润新知