Возможно ли оставить в списке все элементы большие (меньшие, большие или равные) заданного значения k?
Каким образом это реализовать?[/b]
Возможно ли оставить в списке все элементы большие k
Модератор: Admin
-
- Сообщения: 3
- Зарегистрирован: Вт май 21, 2013 4:58 pm
Ниже приведен исходник функции для вычисления элементов списка l, больших k, с примером.
In[2066]:= Elements[l_List, k_] := Select[l, # >= k &]
In[2067]:= {p, a} = {1, {}}; While[p < 30,
AppendTo[a, RandomInteger[{5, 100}]]; p++]; a
Out[2067]= {72, 22, 67, 14, 100, 63, 97, 10, 21, 15, 12, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 15, 67, 18, 29, 31, 27, 70}
In[2068]:= Elements[a, 30]
Out[2068]= {72, 67, 100, 63, 97, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 67, 31, 70}
Несложно расширить данную функцию и на более общие случаи. Дерзайте. Успехов.
In[2066]:= Elements[l_List, k_] := Select[l, # >= k &]
In[2067]:= {p, a} = {1, {}}; While[p < 30,
AppendTo[a, RandomInteger[{5, 100}]]; p++]; a
Out[2067]= {72, 22, 67, 14, 100, 63, 97, 10, 21, 15, 12, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 15, 67, 18, 29, 31, 27, 70}
In[2068]:= Elements[a, 30]
Out[2068]= {72, 67, 100, 63, 97, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 67, 31, 70}
Несложно расширить данную функцию и на более общие случаи. Дерзайте. Успехов.
Привожу обобщение функции Selin'a на случай, когда в качестве параметра F используются Equal, Greater, GreaterEqual, Less, LessEqual и др. функции от 2 параметров.
In[2030]:= Elements[l_List, k_, F_Symbol] := Select[l, F[#, k] &]
In[2031]:= Elements[{56, 34, 23, 78, 56, 95, 23, 11, 21}, 50, Greater]
Out[2031]= {56, 78, 56, 95}
In[2030]:= Elements[l_List, k_, F_Symbol] := Select[l, F[#, k] &]
In[2031]:= Elements[{56, 34, 23, 78, 56, 95, 23, 11, 21}, 50, Greater]
Out[2031]= {56, 78, 56, 95}
-
- Сообщения: 3
- Зарегистрирован: Вт май 21, 2013 4:58 pm
-
- Сообщения: 3
- Зарегистрирован: Вт май 21, 2013 4:58 pm
Selin писал(а):Ниже приведен исходник функции для вычисления элементов списка l, больших k, с примером.
In[2066]:= Elements[l_List, k_] := Select[l, # >= k &]
In[2067]:= {p, a} = {1, {}}; While[p < 30,
AppendTo[a, RandomInteger[{5, 100}]]; p++]; a
Out[2067]= {72, 22, 67, 14, 100, 63, 97, 10, 21, 15, 12, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 15, 67, 18, 29, 31, 27, 70}
In[2068]:= Elements[a, 30]
Out[2068]= {72, 67, 100, 63, 97, 36, 69, 44, 52, 41, 74, 38, 91, 43, 32, 73, 67, 31, 70}
Несложно расширить данную функцию и на более общие случаи. Дерзайте. Успехов.
Получилось!
Благодарю.
Скажите, а так будет проще?
In[13]:=
w={1,а,2,b,3,4,c}
Select[w,#<=2&]
Out[13]=
{1,а,2,b,3,4,c}
Out[14]=
{1,2}