去掉列表中的最大范围值

当处理数据时会遇到一个值被多个条件选中,但是只需要最大或者最小范围的值,所以需要进行处理

# 原始元组
tuples = [('例子1', '例子', 0, 15),
          ('例子2', '例子', 1, 15),
          ('例子3', '例子', 12, 15),
          ('例子4', '例子', 0, 18)
          ]

# 去重后的元组
unique_tuples = list(set(tuples))
# 处理后的元组
processed_tuples = []
for tup in unique_tuples:
    is_contained = False
    for other_tup in unique_tuples:
        # 不需要和自己比较
        if tup[0] != other_tup[0]:
            # 满足大于任意一个开始值,小于任意一个结束值就说明是子集,就需要去除
            if tup[2] >= other_tup[2] and tup[3] <= other_tup[3]:
                is_contained = True
                break
    if not is_contained:
        processed_tuples.append(tup)
print(processed_tuples)

输出:

[('例子4', '例子', 0, 18)]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值