是否有一种pythonic方法来删除包含在较大偏移中的偏移?
我有一份补偿清单-是否有一种pythonic方法来删除包含在较大偏移中的偏移?,python,Python,我有一份补偿清单- input = [(157, 1228), (1233, 1540), (1925, 7000), (2392, 4378), (4451, 5368), (5759, 7000)] 我只想保留那些不包含在其他偏移中的偏移。例如: output = [(157, 1228), (1233, 1540), (1925, 7000)] 我尝试了循环和if-else语句,但我确信会有一种类似python的方法来计算它 我试过这个- for i in range(1,len(x)
input = [(157, 1228), (1233, 1540), (1925, 7000), (2392, 4378), (4451, 5368), (5759, 7000)]
我只想保留那些不包含在其他偏移中的偏移。例如:
output = [(157, 1228), (1233, 1540), (1925, 7000)]
我尝试了循环和if-else语句,但我确信会有一种类似python的方法来计算它
我试过这个-
for i in range(1,len(x),1):
if x[i-1][1] > x[i][0]:
del x[i]
但这不起作用。删除了旧的尝试-不确定它的有效性 编辑新答案-独立排序&希望更接近python的方式-但需要更多的迭代以使其独立排序:
def check_if_outside(offset, offset_input):
return not any((i[0] < offset[0] < i[1]) or (i[0] < offset[1] < i[1]) for i in {el for el in offset_input}.difference({offset}))
# Now (to prove order isn't important) reorder the sample
sample = [(2392, 4378), (157, 1228), (1233, 1540), (1925, 7000), (4451, 5368), (5759, 7000)]
result = list(filter(lambda x: check_if_outside(x, sample), sample))
已删除旧尝试-不确定其有效性 编辑新答案-独立排序&希望更接近python的方式-但需要更多的迭代以使其独立排序:
def check_if_outside(offset, offset_input):
return not any((i[0] < offset[0] < i[1]) or (i[0] < offset[1] < i[1]) for i in {el for el in offset_input}.difference({offset}))
# Now (to prove order isn't important) reorder the sample
sample = [(2392, 4378), (157, 1228), (1233, 1540), (1925, 7000), (4451, 5368), (5759, 7000)]
result = list(filter(lambda x: check_if_outside(x, sample), sample))
如果包含两条边,则可以尝试此简单的循环:
样本=[
157, 1228, 1233, 1540, 1925, 7000, 2392, 4378, 4451, 5368, 5759, 7000
]
输出=[]
对于样本中的x,y:
如果没有
对于输出中的i,x>i[0]和xi[0]和y>> [157, 1228, 1233, 1540, 1925, 7000]
此外,您不应将单词input用作变量名,这是一个处理用户输入功能的python保留关键字。如果包含两条边,您可以尝试使用此简单的循环:
样本=[
157, 1228, 1233, 1540, 1925, 7000, 2392, 4378, 4451, 5368, 5759, 7000
]
输出=[]
对于样本中的x,y:
如果没有
对于输出中的i,x>i[0]和xi[0]和y>> [157, 1228, 1233, 1540, 1925, 7000]
另外,您不应该将单词input用作变量名,这是一个处理用户输入功能的python保留关键字。其他子集中不包含的含义是什么?你仍然应该展示你已经尝试过的东西。其他子集中不包含的意思是什么?你仍然应该展示你所做的。@JasonChia-现在看起来更好了吗?@JasonChia-现在看起来更好了吗?你可以编辑is\u offset\u contains\u offset func来做Marcos做的事情,如果你想做的话。你可以编辑is\u offset\u contains\u offset func来做Marcos做的事情,如果你想做的话。