I have a list of lists. For example,
list = {{0,1,0,1,true},{0,0,0,0,false},{0,1,1,1,true},{1,1,1,1,false},{2,2,2,2,false}}
I'd like to find all lists that have the fifth element set to true
. I'm looking for a general method that works for any lists in this format. How can I do this?
In the above example, the result that I'm looking for would be:
{{0,1,0,1,true},{0,1,1,1,true}}
Sorry for such a basic question. I looked through the documentation for lists, and couldn't find a way to do this. I'm still fairly new at Mathematica.
Answer
There are several options and this is probably a duplicate although I can't seem to find it. A few of them to try out and learn:
list = {{0, 1, 0, 1, true}, {0, 0, 0, 0, false}, {0, 1, 1, 1, true},
{1, 1, 1, 1, false}, {2, 2, 2, 2, false}};
Cases[list, {__, true}]
Select[list, Last@# === true &]
DeleteCases[list, {__, false}]
Pick[list, list, {__, true}] /. {} -> Sequence[]
all of which return
(* {{0, 1, 0, 1, true}, {0, 1, 1, 1, true}} *)
If your data has True
and False
instead of true
and false
, then you can simplify the Select
example to:
Select[list, Last]
Comments
Post a Comment