Algorithm 尝试在我的数组中查找algo

Algorithm 尝试在我的数组中查找algo,algorithm,tabs,Algorithm,Tabs,我是python的begginners,我想要一个在数组中查找移位的程序: 输入:[16,40,42,46,47,41,43,48,49,52] 我想找出1,2和3在几个数字之间的移位。 输出: {0: [46 - 47], 1: [48 - 49]} {0: [40 - 42], 1: [41 - 43]} {0: [49 - 52]} 我试过这个: tab = [16, 40, 42, 46, 47, 41, 43, 48] for i, j in enumerate(tab):

我是python的begginners,我想要一个在数组中查找移位的程序: 输入:[16,40,42,46,47,41,43,48,49,52] 我想找出1,2和3在几个数字之间的移位。 输出:

{0: [46 - 47], 1: [48 - 49]}
{0: [40 - 42], 1: [41 - 43]}
{0: [49 - 52]}
我试过这个:

tab = [16, 40, 42, 46, 47, 41, 43, 48]
for i, j in enumerate(tab):
    try:
        if tab[i + 1] - tab[i] == 1:
            stock = i
        if tab[i + 1] - tab[i] == 2:
            stock2 = i
    except:
        print ("")

print (tab)
print ('Shift of one : ' +  '[%d' % tab[stock] + ' - %d]' % tab[stock + 1])
print ('Shift of two : ' + '[%d' % tab[stock2] + ' - %d]' % tab[stock2 + 1])

很高兴见到你

我希望我正确理解了你的问题

tab = [16, 40, 42, 46, 47, 41, 43, 48, 49, 52]
shiftList = [list() , list() , list()]
for i in range(0, len(tab)-1):
    for gap in range (0,len(shiftList)):
        if tab[i + 1] - tab[i] == gap + 1 :
            shiftList[gap].append((tab[i],tab[i + 1])); 
print (shiftList)
我们使用一个元组列表。列表索引给出了间隔,列表将移位对存储为元组

输出为:

[
 [(46, 47), (48, 49)],
 [(40, 42), (41, 43)],
 [(49, 52)]
]

非常感谢,我还有一个小问题,我希望我的制表符在每一个循环中都会更改:例如,第二次巡演中的制表符=[2,4,9,0,87,23,24]