python多维列表中去除内容重复维度

有一个由很多点组成的多维列表:all_list = [[[5, 8], [5, 2]], [[5, 9], [5, 1]], [[6, 0]], [[6, 9], [4, 1]], [[5, 2], [5, 8]], [[5, 1]], [[4, 1]], [[5, 8]], [[6, 0]]],每一维度代表一类点。

想要去除其中内容重复的类(此处不考虑顺序,仅考虑包含点相同,如[[5, 8], [5, 2]]与[[5, 2], [5, 8]]视作内容重复,由于点[5,8]在array[0]中已包含,故也视为重复)。

主要运用remove与del两种方法进行操作,del可以直接删除整行列表,remove可以对仅含单个元素的列表进行删除,最后将空列表移出all_list中。代码如下:

        # 删除簇中内容重复的列表
        k = 0
        for i in all_list:
            if len(i) == 1:
                i.append([])
            l = k + 1
            for j in all_list[l:]:
                if len(j) == 1:
                    if j[0] in i:
                        all_list.remove(j)
                        continue
                elif j[0] in i:
                    if j[1] in i:
                        del all_list[l]
                l += 1
            k += 1

        # 去除空列表
        for i in all_list:
            for j in i:
                if not j:
                    i.remove(j)

可以用于处理点集分类问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值