2017-03-12 5 views
0

Ich bin Anfänger in Python und ich wollte ein Programm, das die Verschiebung in einem Array finden: Eingabe: [16, 40, 42, 46, 47, 41, 43, 48, 49 , 52] und ich möchte die Verschiebung von 1, 2 und 3 zwischen den verschiedenen Zahlen finden. Ausgabe:versuchen, Algo auf meinem Array zu finden

{0: [46 - 47], 1: [48 - 49]} 
{0: [40 - 42], 1: [41 - 43]} 
{0: [49 - 52]} 

Ich habe versuchen Sie dies:

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

Panzers you very much !!!

Antwort

1

Ich hoffe, ich habe Ihr Problem richtig verstanden.

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) 

Wir verwenden eine Liste der Liste der Tupel. Die Liste Index gibt die Lücke und die Liste der Liste speichert die Paare von Verschiebungen als Tupel

Ausgang ist:

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

danken der Ihnen sehr, ich habe gerade noch ein kleines Problem, ich möchte, dass meine Registerkarte Änderung als Jeder Zyklus: Tab = [2, 4, 9, 0, 87, 23, 24] zum Beispiel in der zweiten Tour – newuser

Verwandte Themen