Elenchi nidificatiIn qualche modo ho generato un elenco nidificato di colonne perché inizialmente erano state raggruppate. Vorrei rimuovere l'annidamento per avere un elenco continuo di colonne su cui posso agire.
Invece di {{:A, :B, :C}, (:D, :E, :F}}, vorrei arrivare a {:A, :B, :C,
, :E, :F}
Automazione e scriptingRe: Elenchi nidificatiEcco un modo, supponendo che gli elementi all'interno dell'elenco esterno siano tutti elenchi. Se non lo fossero, devi solo aggiungere un po' di codice in più per gestirlo.
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 )
)
);Re: Elenchi nidificatiTutto ciò che devi fare è concatenare le singole liste;
Names Default To Here( 1 );
l1 = {{:A, :B, :C}, {:D, :E, :F}};
l2 = l1[1] || l1[2];
Ti consiglio di prenderti il tempo di leggere la sezione della Guida alla creazione di script sulla creazione e la manipolazione degli elenchi.
Re: Elenchi nidificatiHo dovuto apportare delle modifiche. Ora funziona. Grazie.
For Each( {val, idx}, this_list,
Insert Into( new_list, val )
);
Re: Elenchi nidificatiAh, scusa. Stavo testando sulle stringhe e ho dimenticato che l'inserimento di un elenco in un elenco inserisce effettivamente gli elementi non valutati dell'elenco. Se hai delle colonne che non sono all'interno di un elenco nidificato, verranno inserite come mancanti, ad esempio:
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}
Puoi risolvere il problema utilizzando Name Expr():
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}Re: Elenchi nidificatiBasandoci sulla soluzione di Jim. Se hai più di due sottoliste:
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}