可能有嵌套列表/元组的Python操作(交集,联合,重复)?
发布时间:2020-12-20 13:35:34 所属栏目:Python 来源:网络整理
导读:案件: a = [(1,2),(2,3),(4,5),(1,6),7)]b = [(5,(6,8),9)] 如何通过第一个元组项删除重复项? 结果将是: [(1,5)] b的结果是: [(5,9)] 如何在没有重复的情况下合并两者?: 结果将是: [(1,(5,3)] 我怎样才能得到两者的交集?: 结果将是: [(1,5)] 这是
案件:
a = [(1,2),(2,3),(4,5),(1,6),7)] b = [(5,(6,8),9)] 如何通过第一个元组项删除重复项? 结果将是: [(1,5)] b的结果是: [(5,9)] 如何在没有重复的情况下合并两者?: [(1,(5,3)] 我怎样才能得到两者的交集?: [(1,5)] 这是一种简单的方法吗? 最好的祝福 解决方法
使用集:
>>> seen = set() >>> s1 = [x for x in a if x[0] not in seen and not seen.add(x[0])] >>> seen = set() >>> s2 = [x for x in b if x[0] not in seen and not seen.add(x[0])] >>> s1 [(1,5)] >>> s2 [(5,9)] 联盟: >>> from itertools import chain >>> seen = set() >>> [x for x in chain(s1,s2) if x[0] not in seen and not seen.add(x[0])] [(1,3)] 路口: >>> se1 = set(x[0] for x in s1) >>> se2 = set(x[0] for x in s2) >>> inter = se1 & se2 >>> inter set([1,4]) >>> seen = set() >>> [x for x in chain(s1,s2) if x[0] in inter and x[0] not in seen and not seen.add(x[0])] [(1,5)] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |