3 番目のリストの項目と部分一致するリスト内の項目を別のリストから抽出するにはどうすればよいですか?次のリストがあります
bigList = {"CD_CORN_1", "ICS_CORN_6", "IPEK21_S00R_P37_2", "CURR_S009_P37_2", "CD_CORN_2", "Ig_RF", "Cmax03_4C230RF", "NG"};
smallList1 = {"CD_CORN_", "CD_CORN_", "CD_CORN_"}; //note these are repeats and that is how I get them
smallList2 = {"IDS_CORN_", "IPEK21_S00R_", "CURR_S009_"};
smallList3 = {"RF", "IPEK21_S00R_", "CURR_S009_", "NG"};を使用して大物リストそしてスモールリスト1 、 私は手に入れたい
sbigList1 = {"CD_CORN_1", "CD_CORN_2"};
を使用して大物リストそしてスモールリスト2 、 私は手に入れたい
sbigList2 = {"ICS_CORN_6", "IPEK21_S00R_P37_2", "CURR_S009_P37_2"};を使用して大物リストそしてスモールリスト3 、 私は手に入れたい
sbigList3 = {"IPEK21_S00R_P37_2", "CURR_S009_P37_2", "Ig_RF", "Cmax03_4C230RF", "NG"};JSL経由でこれを行うにはどうすればよいですか?
(sbiglist 内の項目の順序は関係ありません)
自動化とスクリプト作成ウィンドウズRe: 3 番目のリストの項目と部分一致するリスト内の項目を別のリストから抽出するにはどうすればよいですか?私ならこうします
Names default to here(1);
bigList = {"CD_CORN_1", "ICS_CORN_6", "IPEK21_S00R_P37_2", "CURR_S009_P37_2", "CD_CORN_2", "Ig_RF", "Cmax03_4C230RF", "NG"};
smallList1 = {"CD_CORN_"}; //note these are repeats and that is how I get them
smallList2 = {"IDS_CORN_", "IPEK21_S00R_", "CURR_S009_"};
smallList3 = {"RF", "IPEK21_S00R_", "CURR_S009_", "NG"};
foundList = {};
For Each( {theList}, bigList,
For Each( {sublist}, smallList1,
if(contains(theList,sublist),
insert into(foundlist, theList)
)
);
For Each( {sublist}, smallList2,
if(contains(theList,sublist),
insert into(foundlist, theList)
)
);
For Each( {sublist}, smallList3,
if(contains(theList,sublist),
insert into(foundlist, theList)
)
);
);
bigList の個別の要素はそれぞれ個別に評価する必要があります。
Re: 3 番目のリストの項目と部分一致するリスト内の項目を別のリストから抽出するにはどうすればよいですか?おそらくこのような関数を作成するでしょう
Names Default To Here(1);
bigList = {"CD_CORN_1", "ICS_CORN_6", "IPEK21_S00R_P37_2", "CURR_S009_P37_2", "CD_CORN_2", "Ig_RF", "Cmax03_4C230RF", "NG"};
smallList1 = {"CD_CORN_", "CD_CORN_", "CD_CORN_"};
smallList2 = {"IDS_CORN_", "IPEK21_S00R_", "CURR_S009_"};
smallList3 = {"RF", "IPEK21_S00R_", "CURR_S009_", "NG"};
get_partial_matches = function({to_list, with_list}, {Default Local},
/*""" Get partial matches to_list using with_list
Args:
from_list (list(str)): list to compare to
to_list (list(str)): list to compare with
Returns:
list(str): List with partial matches in alphabetical order
"""*/
matches = Associative Array(); // associative array to avoid duplicates
For Each({to_item}, to_list,
For Each({with_item}, with_list,
If(Contains(to_item, with_item),
Insert Into(matches, to_item);
);
);
);
return(matches << get keys); // << get keys to get result in a list
);
list1 = get_partial_matches(bigList, smallList1);
list2 = get_partial_matches(bigList, smallList2);
list3 = get_partial_matches(bigList, smallList3);
show(list1, list2, list3);
他のオプションはこのようなものですが、私はむしろ前のオプションを使用したいと思います
get_partial_matches2 = function({to_list, with_list}, {Default Local},
matches = Associative Array();
pattern = Concat Items(with_list, "|");
For Each({to_item}, to_list,
res = Regex(to_item, pattern);
If(!IsMissing(res),
Insert Into(matches, to_item);
);
);
return(matches << get keys);
);
list1 = get_partial_matches2(bigList, smallList1);
list2 = get_partial_matches2(bigList, smallList2);
list3 = get_partial_matches2(bigList, smallList3);
show(list1, list2, list3);