Verschachtelte ListenIch habe aufgrund der anfänglichen Gruppierung eine verschachtelte Spaltenliste erstellt. Ich möchte die Verschachtelung entfernen, um eine fortlaufende Spaltenliste zu erhalten, auf die ich reagieren kann.
Anstelle von {{:A, :B, :C}, (:D, :E, :F}} möchte ich zu {:A, :B, :C,
, :E, :F} gelangen.
Automatisierung und SkriptingBetreff: Verschachtelte ListenHier ist eine Möglichkeit, vorausgesetzt, dass die Elemente in der äußeren Liste alle Listen sind. Falls dies nicht der Fall ist, müssen Sie lediglich etwas mehr Code hinzufügen, um dies zu beheben.
Names Default to Here( 1 );
this_list = {{:A, :B, :C}, {:D, :E, :F}};
new_list = {};
For Each( {v, i}, this_list,
For Each( {val, idx}, v,
Insert Into( new_list, val )
)
);Betreff: Verschachtelte ListenSie müssen lediglich die einzelnen Listen aneinanderreihen.
Names Default To Here( 1 );
l1 = {{:A, :B, :C}, {:D, :E, :F}};
l2 = l1[1] || l1[2];
Ich schlage vor, dass Sie sich die Zeit nehmen, den Abschnitt zum Erstellen und Bearbeiten von Listen im Scripting Guide zu lesen.
Betreff: Verschachtelte ListenMusste das optimieren. Funktioniert jetzt. Danke.
For Each( {val, idx}, this_list,
Insert Into( new_list, val )
);
Betreff: Verschachtelte ListenAh, Entschuldigung. Ich habe mit Strings getestet und vergessen, dass beim Einfügen einer Liste in eine Liste auch die nicht ausgewerteten Elemente der Liste eingefügt werden. Wenn Sie Spalten haben, die nicht in einer verschachtelten Liste enthalten sind, werden diese als fehlend eingefügt, zum Beispiel:
Names Default To Here( 1 );
this_list = {{:A, :B, :C}, :D, {:E, :F, :G}};
new_list = {};
For Each( {v, i}, this_list, Insert Into( new_list, v ) );
//{:A, :B, :C, ., :E, :F, :G}
Sie können das Problem lösen, indem Sie Name Expr() verwenden:
Names Default To Here( 1 );
this_list = {{:A, :B, :C}, :D, {:E, :F, :G}};
new_list = {};
For Each( {v, i}, this_list, Insert Into( new_list, Name Expr( v ) ) );
//{:A, :B, :C, :D, :E, :F, :G}Betreff: Verschachtelte ListenAufbauend auf Jims Lösung. Wenn Sie mehr als zwei Unterlisten haben:
Names Default To Here( 1 );
l1 = {{:A, :B, :C}, {:D, :E, :F}, {:G, :H, :I, :J}};
l3 = {};
for (i = 1, i <= nitems(l1), i++,
insertinto(l3, l1[i]);
);
print(l3);
{:A, :B, :C,
, :E, :F, :G, :H, :I, :J}