2017-03-12 9 views
0

私はpythonでbegginnersです。私は配列のシフトを見つけるプログラムをしたかった: 入力:[16,40,42,46,47,41,43,48,49 、52] と私は、いくつかの数字の間に1,2,3のシフトを見つけたいと思います。 出力:私の配列にalgoを見つけようとしています

{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]) 

タンクのあなたの非常に多くを!

答えて

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)] 
] 
+0

感謝のあなたを、私はまだ小さな問題を抱えている、私は私のタブの変更をしたいですすべてのサイクル:tab = [2、4、9、0、87、23、24] – newuser

関連する問題