TCL: Sortieren einer Liste von strings, basierend auf einem Teil des Strings
Ich bin nicht Experte in TCL, aber leider haben sich mit ihm zu beschäftigen. Ich versuche hierzu: ich habe eine Liste mit strings: z.B. "test2 ""test3" "test1". Ich möchte zum Sortieren der Liste mit der Nummer nach dem "test". Ich habe gelesen, alle lsort Befehl Optionen, aber ich denke, es ist kein einfacher Weg, da die tcl-nicht (WARUM ???) betrachten strings als arrays, wie zum Beispiel python macht. Wie kann ich das tun ? ich danke Ihnen allen im Voraus.
- Normalerweise ist es nicht notwendig Umgang mit strings Sequenzen von Zeichen (und in der Tat Tcl Auffassung strings werden der grundsätzliche Datentyp). Wenn es notwendig ist,
split $theString {}
geben wird, eine Charakter-Liste.
InformationsquelleAutor user3012827 | 2013-11-20
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die einfache Antwort ist:
Aber dieser schlägt fehl, wenn Sie die zahlen haben > 10:
So dass Sie wahrscheinlich benötigen, um vergleichen Sie selbst:
In der Tat, Tcl, können Sie erwägen einen string als byte-array, also das problem mit der Aussage
ist deine definiton von "array". In Tcl wir in der Regel verwenden Sie Listen für eine Sequenz von Werten, wenn Sie wollen bekommen Sie eine Liste mit allen Charakteren verwenden
split $yourstring {}
lindex $mylist $n
für Zeichenfolgen, die Sie verwendenstring index $mystring $n
. Wenn die Tcl-API würde neu gestaltet werden, dann werden alle l* Befehle werden umbenanntlist ...
, aber es ist bereits einlist
Befehl, die sehr wichtig ist.Den
lsort
Befehl hat eine-dictionary
option, die genau das machtwas Sie wollen:
test
...Ich würde verwenden eine Schwarzian verwandeln Ansatz
Tcl 8.6
Gehen Weg off-topic, vergleicht dieses mit dem perl -
lmap
...