帮我优化下面代码def get_different( data_source: List[Dict], data_system: List[Dict], id_source: str, id_system: str) -> Tuple[set, set, set]: """ :param data_source: 数据源数据 :param data_system: 用户管理系统数据 :param id_source: 数据源唯一标识 :param id_system: 用户管理唯一标识 :return: create: 需要新增的用户 exists: 已存在的用户 -> 已存在的用户需要进一步的进行比对 delete: 需要删除的用户 """ id_source_set = {source[id_source] for source in data_source} id_system_set = {system[id_system] for system in data_system} create = id_source_set - id_system_set exists = id_source_set & id_system_set delete = id_system_set - id_source_set return create, exists, delete
时间: 2023-04-01 18:03:30 浏览: 56
- id_system_set
delete = id_system_set - id_source_set
return create, exists, delete
优化建议:
1. 可以使用集合推导式简化代码,如下所示:
id_source_set = {source[id_source] for source in data_source}
id_system_set = {system[id_system] for system in data_system}
2. 可以使用集合的差集操作简化代码,如下所示:
create = id_source_set - id_system_set
exists = id_source_set & id_system_set
delete = id_system_set - id_source_set
优化后的代码如下所示:
def get_different(data_source: List[Dict], data_system: List[Dict], id_source: str, id_system: str) -> Tuple[set, set, set]:
id_source_set = {source[id_source] for source in data_source}
id_system_set = {system[id_system] for system in data_system}
create = id_source_set - id_system_set
exists = id_source_set & id_system_set
delete = id_system_set - id_source_set
return create, exists, delete