2016-10-10 1 views
0

was würdenWie bekomme ich eine Liste von sich wiederholenden Ganzzahlen aus dem Array?

Zum Beispiel eine Reihe von sich wiederholenden ganzen Zahlen in einem Array eine einfache Möglichkeit zum Auffinden und zur Ausgabe sein, sollte ein Array von 1 2 3 4 4 4 5 6 Ausgang 4 4 4

+2

Was sollte die Antwort auf '1 2 3 4 4 4 5 6 4' sein? –

+1

Suchen Sie nur nach benachbarten doppelten Objekten? Wird die Sequenz immer sortiert? –

Antwort

0

Es recht gibt ein paar Möglichkeiten, um die Frage mit unterschiedlichen Ausgängen zu beantworten für Eckfälle, aber wie wäre es mit einem minimalen Beispiel, das den speziell erwähnten Fall richtig löst?

x = [1, 2, 3, 4, 4, 4, 5, 6] 
ind = [a==b for a,b in zip(x[:-1],x[1:])].index(True) 
y = [a for a in x if a==x[ind]] 
print(y) 

gibt [4, 4, 4]

0

Der Code unten eine Liste von Sequenzlisten aller wiederkehrenden Elemente machen.

list = [1, 2, 3, 4, 4, 4, 5, 6, 6, 7, 8, 8, 8, 8, 3, 4, 2, 3, 3] 

last = None 
sequences = [] 
series = [] 
list.append('last') 
for item in list: 
    if item == last: 
     series.append(last) 
    elif series: 
     series.append(last) 
     sequences.append(series) 
     series = [] 
    last = item 
if series: 
    series.append(last) 
    sequences.append(series) 
print sequences 

Will Ausgang

>>> [[4, 4, 4], [6, 6], [8, 8, 8, 8], [3, 3]] 
Verwandte Themen