Seite 1 von 1
carrot ^ als Operator
Verfasst: Freitag 15. März 2013, 10:22
von mcdwerner
Hi,
in diesem Quelltext bezüglich Natural-Sort bin ich auf ein carrot als Operator gestoßen:
http://dpaste.com/hold/1022826/
Zeile 12
ich kann jedoch nirgends eine Info über diesen Operator finden?
das Modul läuft korrekt unter Python 2.7 wenn ich jedoch das carrot durch ein "and" oder "or" ersetze ändert sich das Ergebnis.
Wer kann mir sagen, was dieses carrot macht???
Re: carrot ^ als Operator
Verfasst: Freitag 15. März 2013, 10:27
von JonasR
Hey,
hatte das Ganze noch als Bit Operator im Kopf, scheint auch richtig zusein:
x ^ y
Does a "bitwise exclusive or". Each bit of the output is the same as the corresponding bit in x if that bit in y is 0, and it's the complement of the bit in x if that bit in y is 1.
http://wiki.python.org/moin/BitwiseOperators
Re: carrot ^ als Operator
Verfasst: Freitag 15. März 2013, 10:28
von schaeffkoch
exclusives oder /xor
Re: carrot ^ als Operator
Verfasst: Freitag 15. März 2013, 11:44
von BlackJack
@mcdwerner: Da man nach dem Zeichen schlecht suchen kann ein Tipp für die Zukunft: Die Python-Dokumentation hat einen Index. Der Link ist auf so ziemlich jeder Seite der Dokumentation oben rechts. Darüber kann man auch für Sachen nach denen man mit Suchmaschinen schlecht suchen kann, die Dokumentation finden.
Das Zeichen was Du meinst heisst übrigens „Caret” und nicht „Carrot”. Letzteres ist Karotte auf Englisch. Und streng genommen ist der ^ (Accent Circumflex) kein Caret, denn der ist auf, beziehungsweise unter, der Basislinie und nicht so weit oben: ‸ (ob da jetzt was angezeigt wird, hängt davon ab ob die Schriftart die zur Anzeige verwendet wird, ein Caret enthält)
Re: carrot ^ als Operator
Verfasst: Freitag 15. März 2013, 13:38
von mcdwerner
Danke an euch alle!
die bit-weisen Operationen hab ich vor lauter Funktionen, Instanzen und Methoden schon wieder verdrängt...
@BlackJack: nach "python caret" googlen bringt auch deutlich bessere Suchergebnisse als "carrot"

Und ich merke gerade, dass der Link auf den Index in der Dokumentation bei mir häufig vom Chrome-Suchfeld verdeckt ist <facepalm-Smiley einsetzen>
Re: carrot ^ als Operator
Verfasst: Freitag 15. März 2013, 14:09
von BlackJack
@mcdwerner: Wobei die Implementierung IMHO nur bedingt von praktischem Interesse ist. Ich finde eine etwas kompaktere und vielleicht auch verständlichere `re`-Lösung besser:
Code: Alles auswählen
def natural_order_key_func(string):
result = list()
for part in re.findall(r'\d+|\D+', string):
try:
result.append(int(part))
except ValueError:
result.append(part)
return result
Re: carrot ^ als Operator
Verfasst: Freitag 15. März 2013, 14:26
von mcdwerner
@BlackJack: danke, mir ging es gar nicht so sehr um den Algorithmus und ich weiss auch nicht mehr woher ich den Link hatte. Wahrscheinlich würde ich beim Thema "Strings sortieren" auch zuerst ans re-Modul denken
