我的目標是合併以下示例列表中的重疊元組。合併列表中的重疊項目
如果一個項目落在下一個範圍內,這兩個元組將不得不合並。得到的元組覆蓋了兩個項目的範圍(最小值到最大值)。例如; [(1,6),(2,5)]
將導致[(1,6)]
,作爲[2,5]
落在[(1,6)]
mylist=[(1, 1), (1, 6), (2, 5), (4, 4), (9, 10)]
的範圍內我嘗試:
c=[]
t2=[]
for i, x in enumerate(mylist):
w=x,mylist[i-1]
if x[0]-my[i-1][1]<=1:
d=min([x[0] for x in w]),max([x[1] for x in w])
c.append(d)
for i, x in enumerate(set(c)):
t=x,c[i-1]
if x[0]-c[i-1][1]<=1:
t1=min([x[0] for x in t]),max([x[1] for x in t])
t2.append(t1)
print sorted(set(t2))
派生的輸出:
[(1, 6), (1, 10)]
希望的輸出:
[(1, 6), (9, 10)]
有關如何獲得所需輸出的任何建議(如果可能,請在更少的行中)?謝謝。
你的問題還不清楚。請重新說明 – sshashank124
合併和重疊的標準是什麼?仍然不清楚 – sshashank124
如果其中一個輸入是'(3,7)',應該輸出什麼? – thefourtheye