Vermeiden Objekt aliasing in python?

Ich versuche, eine Funktion schreiben, die überprüfen, ob eine Liste sortiert ist (Rückkehr True oder False). Wie kann ich vermeiden, dass mehrere Variablen auf das gleiche Ding?

def is_sorted(t):
    a = t
    a.sort()

Wenn ich das mache, er sortiert beide a und t. Wie kann ich diese vermeiden?

  • "Wie kann ich diese vermeiden?" Von der Suche nach einem besseren design. Dies ist -- vielleicht -- die langsamste Art und Weise, dies zu tun. Die einzige Sache, die könnte langsamer sein, wäre die Umsetzung Ihrer eigenen version von sort.
  • Es ist etwas, das erkenntnistheoretische über die Antworten, die beinhalten, dass die Sortierung der Liste: es ist völlig unwahrscheinlich, dass das Programm keine Verwendung haben für, zu einem anderen Ergebnis als True nachdem die Liste bereits sortiert. Nur in sehr seltenen Fällen würde die Antwort auf die ursprüngliche is_sorted() Abfrage noch relevant sein. Außerdem, ist die Sortierung einer bereits sortierten Liste ist nah genug zu A(n), also Warum die Mühe Abfragen, anstatt nur geradeaus und ruft sort() oder sorted()?
InformationsquelleAutor Johnny | 2011-01-06
Schreibe einen Kommentar