我是python的初学者,我想要一个程序找到数组中的移位: 输入:[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])
坦克,你非常喜欢!!!
答案 0 :(得分: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)]
]