当处理数据时会遇到一个值被多个条件选中,但是只需要最大或者最小范围的值,所以需要进行处理
# 原始元组
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)]