リスト内の要素を削除するこんにちは、
誰かが私を助けてくれます....次のようなリストが2つあります。
MYLIST = {:empty, :empty2, :Name("A:k"), :Name("A:m"), :Name("A:x"), :Name("A:y"), :NA, :Name("D:3"), :Name("D:6"), :Name("D:8")};
DELCOLS= {:empty, :empty2};
リストDELCOLSの要素をMYLISTから削除したいのですが
予想された結果:
MYLIST = {:Name("A:k"), :Name("A:m"), :Name("A:x"), :Name("A:y"), :NA, :Name("D:3"), :Name("D:6"), :Name("D:8")}
前もって感謝します
ジャンパオロ
Re: リスト内の要素を削除するJeff のコードは素晴らしく、不要なアイテムの複数のインスタンスを削除する賢い方法を使用しています。
JSL では多くの場合複数の方法があることを説明するために、連想配列を使用した別のアプローチを示します。
(すべての倍数が削除されることに注意してください)
MYLIST = {:empty, :empty2, :Name("A:k"), :Name("A:m"), :Name("A:x"), :Name("A:y"), :NA, :Name("D:3"), :Name("D:6"), :Name("D:8")};
DELCOLS = {:empty, :empty2};
// Remove DELCOLS from MYLIST. Retains original order of items.
AA = Associative Array(MYLIST, 1 :: N Items(MYLIST));
MYLIST = (AA << Remove(Associative Array(DELCOLS)) << get keys)[Rank(AA << get values)];
// If order is not important, this simpler version works (items sorted alphabetically)
MYLIST_sorted = Associative Array(MYLIST) << Remove(Associative Array(DELCOLS)) << get keys;
Show(MYLIST, MYLIST_sorted);
Re: リスト内の要素を削除する@txnelsonそうです。Scripting Index と Scripting Guide は優れたリソースです。
ただし、途中で役立つように、ために()ループ、から削除() 、 List()としてとロック()機能。
MYLIST = {:empty, :empty2, :Name( "A:k" ), :Name( "A:m" ), :Name( "A:x" ), :Name( "A:y" ), :NA,
:Name( "D:3" ), :Name( "D:6" ), :Name( "D:8" )};
DELCOLS = {:empty, :empty2};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( mylist, As List( Loc( mylist, delcols[i] ) ) )
);
Re: リスト内の要素を削除するRemove() 関数を使用します。 スクリプトのインデックスを参照してください
ヘルプ==>スクリプトインデックス
詳細については。
スクリプト ガイドを読むことを強くお勧めします。リストの操作方法の詳細が含まれています
ヘルプ==>書籍==>スクリプトガイド