Stellen Sie sicher, dass alle Elemente in der Liste in Python identisch sind

Ich zögerte, weiterhin falsche Informationen preiszugeben, deshalb schrieb ich sie neu. Ich habe versucht, auf verschiedene Arten zu schreiben, während ich die Punkte reflektierte, die ich erhalten habe.

Implementierung

Beurteilen Sie, indem Sie das erste Element mit einem anderen Element treffen

def map_all(es):
    return all([e == es[0] for e in es[1:]]) if es else False

Beurteilen Sie die Anzahl der Elemente, wenn doppelte Elemente gelöscht werden

def set_list(es):
    return len(list(set(es))) == 1

Beurteilung durch Schlagen des ersten Elements mit einem anderen Element (rekursiv)

def recursive(es):
    return _rec(es, es[0], True) if es else False

def _rec(es, head, acc):
    return _rec(es[1:], head, acc and head == es[0]) if es else acc

Dupliziere das erste Element und vergleiche es mit dem Richter

def multi_diff(es):
    return es == [es[0]] * len(es) if es else False

Prüfung

Das letzte Mal war es so gut, dass ich es dieses Mal bis zu einem gewissen Grad getestet habe ...

def tests(expected, elements):
    assert map_all(elements) == expected
    assert set_list(elements) == expected
    assert recursive(elements) == expected
    assert multi_diff(elements) == expected

T, F, N = True, False, None

tests(True, [-1])
tests(True, [0])
tests(True, [1])
tests(True, [2])
tests(True, ['T'])
tests(True, [T])
tests(True, [N])

tests(True, [-1, -1])
tests(True, [0, 0])
tests(True, [1, 1])
tests(True, [2, 2])
tests(True, ['T', 'T'])
tests(True, [T, T])
tests(True, [F, F])
tests(True, [N, N])

tests(True, [-1, -1, -1])
tests(True, [0, 0, 0])
tests(True, [1, 1, 1])
tests(True, [2, 2, 2])
tests(True, ['T', 'T', 'T'])
tests(True, [T, T, T])
tests(True, [F, F, F])
tests(True, [N, N, N])


tests(False, [])

tests(False, [0, 1])
tests(False, [1, 0])
tests(False, [0, 2])
tests(False, [1, 2])
tests(False, ['T', 'F'])
tests(False, ['F', 'T'])
tests(False, [T, F])
tests(False, [F, T])
tests(False, [T, N])
tests(False, [N, F])
tests(False, [N, 0])
tests(False, [0, N])

tests(False, [0, 0, 1])
tests(False, [0, 1, 0])
tests(False, [T, F, F])
tests(False, [F, T, F])
tests(False, [F, F, T])
tests(False, [F, T, T])
tests(False, [T, F, T])
tests(False, [T, T, F])
tests(False, [T, T, N])


tests(True, [[]])
tests(True, [[], []])
tests(True, [[], [], []])
tests(True, [[5]])
tests(True, [[5], [5]])
tests(True, [[5], [5], [5]])

tests(False, [[],  [5]])
tests(False, [[3], [5]])
tests(False, [[3], [3, 3]])

abschließend

Das letzte Mal habe ich [dies] gesagt (http://qiita.com/suzuki-hoge/items/ffaec673ccfbd2079a29), oh peinlich ...

Recommended Posts

Stellen Sie sicher, dass alle Elemente in der Liste in Python identisch sind
[Python] Gibt alle Kombinationen von Elementen in der Liste aus
[Python] Kombinieren Sie alle Elemente in einem Array
Stellen Sie fest, ob alle Listenelemente im Diktatschlüssel vorhanden sind
[Python] Checklistenelemente alle, alle
Kopieren Sie die Liste in Python
Abrufen von Listenelementen in Python
In Python werden die Elemente in der Liste sortiert und als Elemente und Vielfache ausgegeben.
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Löschen Sie mehrere Elemente in der Python-Liste
[PyTorch] Überprüfen Sie, ob sich Modell und Datensatz im Cuda-Modus befinden
Python Hinweis: Stellen Sie fest, ob das Befehlszeilenargument in der Liste enthalten ist
Alle Elemente bewegen sich (bleiben nicht in derselben Position)
Nehmen Sie die logische Summe von List in Python (Zip-Funktion)
[Python] Generieren einer Sequenz, die dieselben Elemente berücksichtigt
Ruft die EDINET-Codeliste in Python ab
Python open und io.open sind gleich
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Überprüfen Sie, ob die Zeichen in Python ähnlich sind
Holen Sie sich nur Unterklassenelemente in eine Liste
Wählen Sie zufällig Elemente aus der Liste (Array) in Python aus
Sortieren Sie Listenelemente in Python in der angegebenen Reihenfolge
[Python] Manipulation von Elementen in einer Liste (Array) [Sortieren]
So entfernen Sie doppelte Elemente in der Python 3-Liste
[Python] Lösung für das Problem, dass Elemente beim Kopieren einer Liste verknüpft werden
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Sortierte Liste in Python
Filterliste in Python
Die findähnliche Sache der Liste in Python
Über __all__ in Python
[Python] Ruft die Liste der im Modul definierten Klassen ab
[Python] Manipulation von Elementen in der Liste (Array) [Hinzufügen / Löschen]
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Gruppieren Sie nach aufeinanderfolgenden Elementen einer Liste in Python
[Python] So geben Sie Listenwerte der Reihe nach aus
[Python] Stellen Sie sicher, dass die empfangene Funktion eine benutzerdefinierte Funktion ist
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Finde Fehler in Python
Mach nicht test.py in Python!
So überprüfen Sie anhand des Hashwerts, ob der Inhalt des Wörterbuchs in Python identisch ist
Erstellen Sie ein Lesezeichen in Python
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
In der Liste verfügbare Methoden
Stellen Sie Opencv in Python zur Verfügung
Segfo Python in 2 Zeilen
Erstellen Sie eine neue Liste, indem Sie doppelte Elemente in der Liste kombinieren
Ich möchte den Wörterbuchtyp in der Liste eindeutig machen
[Python3] "A // B" und "math.floor (A / B)" sind nicht immer gleich! ??
So überprüfen Sie, ob sich der angegebene Schlüssel im angegebenen Bucket in Boto 3 befindet
Python> Liste> Anhängen () und Erweitern ()> Anhängen: Liste hinzufügen | Erweitern: Element der Liste hinzufügen | Liste hinzufügen mit + =
[Python] Zeigt nur die Elemente der Liste nebeneinander an [Vertikal, horizontal]
[Python] Lassen Sie uns die Anzahl der Elemente im Ergebnis bei der Operation des Sets reduzieren
Aktivieren Sie die morphologische Analyse-Engine MeCab in Python 3 (Version März 2016).
Python: Verwenden Sie die im Zeichenfolgenformat definierten Variablen unverändert
Verwendung von Sternchen (*) in Python. Vielleicht ist das alles? ..
[Python] Ermittelt den Rang der Werte in der Liste in aufsteigender / absteigender Reihenfolge
Wirf etwas mit Python in Kinesis und stelle sicher, dass es drin ist
Die Geschichte, dass das Ersetzen der zweidimensionalen Liste in Python nicht funktioniert hat