也許這樣的事?
list = {{a, b, c, {x, y}, d, x}, {a, b, c, d, x}, {{a, b, c, d}, x}}
Select[list, MemberQ[#, x, {2}] &]
輸出:
{{A,B,C,{X,Y},d,X}}
更新
這也將工作
Cases[list, _?(MemberQ[#, x, {2}] &)]
更新到@rose問題(見註釋)
鑑於以下數據我如何可以選擇其中包含單詞「體格檢查」的字符串中,例如在字符串中的「P-023體格檢查條目,技術員,NOS「,在第二級(即只在子列表內)?(我已經修改@玫瑰的例子有點)
rdata2={{1111113,21119,SQLDateTime[{2011,1,11,11,11,0.`}],31111,"EB/JW",1,47000,"T-510 CHEEK",{"T-510 CHEEK","No Examination, NOS"},"Text bla bla bla physical examination bla bla"},{1111114,21119,SQLDateTime[{2011,2,11,11,11,0.`}],31112,"EB/JW",1,47000,"T-510 CHEEK",{"T-510 CHEEK","P-023 PHYSICAL EXAMINATION, TECHNICIAN, NOS"},"Text bla bla bla"},
{1111115,21000,SQLDateTime[{2011,1,11,11,11,0.`}],31111,"EB/JW",1,47000,"T-510 CHEEK",{"T-510 CHEEK","P-023 physical examination, TECHNICIAN, NOS"},"Text bla bla bla physical examination bla bla"}};
(1)的一種方法(只返回條目1111114)
Select[rdata2,
MemberQ[[email protected]#,
[email protected]{___, Characters["PHYSICAL EXAMINATION"], ___}, {2}] &]
(2)忽略大小寫(但子列表中仍然選擇)
Select[rdata2,MemberQ[[email protected]@#,
[email protected]{___,[email protected]
Characters["PHYSICAL EXAMINATION"],___},{2}]&]
(選擇條目1111114 & 1111115)
(3)最後一個例子(選擇了「不考試」條目子列表內,但其中可存在之間的「否」和「檢驗」 零個或多個字符,並且其中殼體被再次忽略)
Select[rdata2,
MemberQ[[email protected]@#,
[email protected][
[email protected]@{"No", "Examination"}, ___, {1, -1,
2}], {2}] &]
(選擇用於條目1111113 )
毫無疑問,更有效的方法來進行。我希望我已經正確地解釋了這個問題。
例如,如果我搜索列表{A,B,C,{X,Y},d,X}爲 「×」在第二級,上面的函數會給我{x,y}。我想要的是給它{a,b,c,{x,y},d,x}。 – Rose