Wie um zu überprüfen, ob es eine wiederholte Wert in einer Liste und erhalten den Wert
Wie finde ich die wiederholte Wert in einer Liste?
Es wird immer nur ein Wert wiederholt
Beispiel:
numbers=[1,2,3,4,5,3]
Ich brauche, um den Wert 3
Dies ist, was ich versucht habe, aber es ist manchmal drucken Sie den Wert von der gleichen Liste 2 mal.
endLoop=False
for n1 in range(0,len(numbers)):
for n2 in range(1,len(numbers)):
if numbers[n1]==numbers[n2]:
print numbers
print numbers[n1]
endLoop=True
if endLoop:
break
- Was soll passieren, wenn es mehr als eine wiederholte Wert? Keine sich wiederholenden Werte? Spielt es eine Rolle, wenn die Werte wiederholt werden, öfter als andere?
- Es wird immer nur 1 Wert wiederholt. Danke für den Kommentar, die Bearbeitung der post jetzt.
- stackoverflow.com/questions/2161752/... ?
InformationsquelleAutor FutoRicky | 2014-08-28
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie überprüfen, dass
n1 != n2
weil Ihr Programm überprüfen
numbers[1] == numbers[1]
und drucken Sie den Wert an der position1
auch dort ist nur eine vaulue gleichnumbers[1]
so wird der code wie folgt Aussehen:
Behalten von zahlen, die Sie gesehen haben, mit einem
set()
Objekt, die erste Nummer, die bereits in den Satz wiederholt:Dies ist eine effiziente Methode, um die ersten wiederholt Wert, wie Sie nicht haben, um Blick auf den rest der zahlen, sobald er Sie findet.
seen.add()
fügt einen Wert zum einstellen,num in seen
prüft, ob bereits ein Wert in der Menge.set
nimmt sich viel Zeit.Wenn es Ihnen nichts ausmacht mit numpy:
... Erhalten Sie array([3])
gibt es eine einfachere Methode, dies zu tun. mit .count() Schlüsselwort.
Sie können so etwas wie dies tun
Hier ist ein Einzeiler.
test.count()
Aufruf führt einen vollständigen scan der Liste zum zählen der Elemente. Sie sind auch wiederholte der Graf für das wiederholte element.