多個列表根據交集進行合併
阿新 • • 發佈:2022-02-22
不論你在什麼時候開始,重要的是開始之後就不要停止。 不論你在什麼時候結束,重要的是結束之後就不要悔恨。# -*- coding: utf-8 -*-# # ------------------------------------------------------------------------------- # Name: 列表根據交集合並 # Author: yunhgu # Date: 2022/2/22 15:16 # Description: # ------------------------------------------------------------------------------- def merge_list_with_intersection(list_2d: list): """ :param list_2d:二維列表 :return: """ sets = {} for lst in list_2d: s = set(lst) t = set() for x in s: if x in sets: t.update(sets.get(x)) else: sets[x] = s for y in t: sets[y] = s s.update(t) result_list = [] for s in sets.values(): if list(s) not in result_list: result_list.append(list(s)) return result_list if __name__ == '__main__': data_list = [[1, 2, 3], [6, 8], [4, 5, 3], [7, 9, 1], [0, 12]] print(merge_list_with_intersection(data_list))