去掉列表中的最大范围值

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

# 原始元组
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)]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 假设我们有一个列表 `lst`,以下是去掉最大值和最小的代码: ```python def remove_min_max(lst): if len(lst) < 3: return [] min_val = min(lst) max_val = max(lst) return [x for x in lst if x != min_val and x != max_val] ``` 这个函数会先检查列表长度是否小于 3,如果是,那么列表只有一个或者没有元素,无法去掉最大值和最小,所以直接返回空列表。如果列表长度大于等于 3,那么就找到最小最大值,然后返回一个新的列表,这个新列表去掉最大值和最小的元素。 ### 回答2: 以下是一个去掉列表最大值和最小的代码段: ```python def remove_min_max(lst): if len(lst) < 2: return [] # 如果列表长度小于2,即为空或只有一个元素,直接返回空列表 min_val = min(lst) # 找到列表的最小 max_val = max(lst) # 找到列表最大值 lst.remove(min_val) # 移除最小 lst.remove(max_val) # 移除最大值 return lst ``` 在这段代码,我们首先判断列表长度是否小于2,如果是,则直接返回空列表,因为没有其他元素可以移除。然后,我们使用内置函数`min()`和`max()`来找到列表的最小最大值。接着,我们使用`remove()`方法从列表移除最小最大值。最后,我们返回移除了最小最大值后的列表。 ### 回答3: 这里有一个示例代码,可以实现去掉最大值和最小的功能: ```python def remove_extremes(nums): if len(nums) < 2: return [] sorted_nums = sorted(nums) return sorted_nums[1:-1] numbers = [2, 5, 1, 8, 4, 3, 9, 7, 6] result = remove_extremes(numbers) print(result) ``` 代码定义了一个名为remove_extremes的函数,该函数接受一个列表nums作为参数。首先,我们判断列表长度是否小于2,如果是,则直接返回一个空列表。接着,我们对列表进行排序,并使用切片操作从第二个元素到倒数第二个元素的范围获取一个新的子列表,这个子列表已经去掉最大值和最小。最后,用一个示例列表进行测试,并打印结果。 通过这段代码,我们可以实现去掉列表最大值和最小的目的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值