m0_54689861 2022-01-24 14:27 采纳率: 100%
浏览 34
已结题

怎样遍历集合里面的所有元素并且做运算

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

比如有个由同样维度的集合组成的列表
list =[('01', '02', '13', '18', '34'), ('05', '22', '23', '25', '35'), ('01', '05', '07', '17', '20'), ('02', '13', '17', '19', '34'), ('07', '20', '27', '30', '33'), ('02', '18', '24', '25', '34'), ('04', '06', '07', '09', '24'), ('08', '11', '19', '22', '29'), ('04', '10', '11', '23', '26'), ('20', '26', '28', '30', '35'), ('01', '04', '12', '16', '29'), ('01', '02', '08', '12', '26'), ('03', '05', '08', '18', '20'), ('03', '08', '25', '29', '30'), ('03', '20', '25', '30', '34'), ('09', '17', '19', '29', '34'), ('11', '13', '17', '19', '25'), ('02', '08', '16', '29', '34'), ('05', '24', '26', '33', '35'), ('05', '13', '18', '23', '34'), ('09', '11', '12', '15', '31'), ('02', '07', '13', '14', '19'), ('08', '12', '19', '27', '33'), ('04', '07', '17', '29', '31'), ('02', '06', '14', '19', '28'), ('08', '09', '17', '26', '28'), ('04', '21', '28', '29', '33'), ('06', '08', '16', '34', '35'), ('02', '03', '14', '27', '28'), ('02', '16', '17', '18', '34'), ('14', '17', '18', '23', '27'), ('01', '02', '15', '17', '26'), ('01', '11', '12', '34', '35'), ('17', '19', '21', '27', '31'), ('10', '17', '22', '25', '35'), ('08', '23', '26', '27', '33'), ('14', '15', '26', '27', '29'), ('02', '15', '19', '29', '30'), ('05', '10', '21', '25', '31'), ('01', '02', '09', '16', '30'), ('14', '17', '18', '28', '34'), ('11', '18', '21', '22', '33'), ('04', '25', '28', '29', '35'), ('08', '13', '19', '20', '29'), ('08', '09', '13', '29', '30'), ('17', '18', '25', '27', '28'), ('18', '21', '22', '23', '35'), ('07', '08', '15', '19', '28'), ('11', '14', '29', '31', '32'), ('03', '04', '07', '27', '31')]

我想要遍历里面的集合,并且互相做交集,得到只有两个共同元素的子集

for i in list:
for j in list:
s = set(i)&set(j)
if len(s) ==2 and i != j:
print(s)

但是这就会有很多的重复,请问怎样修改就不会有重复 ,谢谢

  • 写回答

3条回答 默认 最新

  • ~白+黑 Python领域新星创作者 2022-01-24 14:45
    关注
    
    a=set()
    for i in list:
        for j in list:
            s = set(i)&set(j)
            if len(s) ==2 and i != j:
                a.add(tuple(s))
    print(a)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 已采纳回答 1月24日
  • 创建了问题 1月24日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改