Anhängen von Elementen, um verschachtelte Liste in TCL
Möchte ich dynamisch Elemente hinzufügen, um verschachtelte Listen. Betrachten Sie das folgende Beispiel:
set super_list {}
lappend super_list {00 01 02}
lappend super_list {10 11 12}
lappend super_list {20 21}
Ergebnisse in:
super_list = {00 01 02} {10 11 12} {20 21}
[lindex $super_list 0] = {00 01 02}
[lindex $super_list 1] = {10 11 12}
[lindex $super_list 2] = {20 21}
Wie kann ich anfügen anderen Wert (z.B. 22) [lindex $super_list 2]?
lappend [lindex $super_list 2] 22
funktioniert nicht!
Ist die einzige Lösung, die ich denken konnte, der so weit ist:
lset super_list 2 [concat [lindex $super_list 2] {22}]
Ist das wirklich die einzige Möglichkeit?
Dank,
Linus
InformationsquelleAutor Linus | 2013-07-30
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Tcl 8.6 (die Funktion wurde Hinzugefügt; es funktioniert nicht in früheren Versionen), die Sie verwenden können
lset
zu erweitern verschachtelte Listen über die index -end+1
:Konnten Sie die Adresse eines über das Ende durch die Verwendung eines numerischen index auch, aber ich denke
end+1
ist mehr Merksatz.Gibt es keine direkte Methode für Listen, dies zu tun. Man könnte zumindest wickeln Sie es in ein proc:
Einer advatange dieses Ansatzes ist, können Sie übergeben eine Liste von Indizes arbeiten in beliebig verschachtelte Listen (wie
lset
):