我目前有一个包含元组的列表。
overlap_list = [(10001656, 10001717), (700, 60000), (10001657, 10001718), (10001657, 10001716), (10031548, 10031643), (10031556, 10031656)]
我想要以下输出:
new_list=[(10001656, 10001717),(10001657, 10001718),(10001657, 10001716),(10031548, 10031643), (10031556, 10031656)]
元组内的数字是开始和结束边界。我想找到数字之间重叠的任何元组。
我已经尝试过我找到的这段代码,它问了一个类似的问题:
import itertools as ittools
def pairwise(iterable):
a, b = ittools.tee(iterable)
next(b, None)
return zip(a, b)
overlap_list = [(10001656, 10001717), (700, 60000), (10001657, 10001718), (10001657, 10001716), (10031548, 10031643), (10031556, 10031656)]
print([list(p) for k, p in it.groupby(pairwise(overlap_list), lambda x: x[0][0] < x[1][0] < x[0][1]) if k])
但这给出了:
[[((10031548, 10031643), (10031556, 10031656))]]
我看过不同的解决方案,但我面临的问题是,按之前的位置进行索引似乎不起作用。
如何获得所需的输出?任何帮助将不胜感激。
ibeautiful
汪汪一只猫
相关分类