Is it possible to easily find the position of a specific value in a list? For example, if the list is {{x1,y1},{x2,y2},...,{xn,yn}} I would like to know the position of y = 123456.78. I would prefer to not use If.
2 Answers
$\begingroup$
$\endgroup$
2
You can use the Position function. Which returns a list of the positions of the pattern you are searching for.
k = RandomInteger[10, {10, 2}]
(* ->{{2, 10}, {9, 3}, {9, 10}, {8, 1}, {2, 0}, {10, 10}, {10, 0}, {10,6}, {3, 1}, {3, 2}} *)
Position[k, 3]
returns
{{2, 2}, {9, 1}, {10, 1}}
Which is a list of the indices of the three occurrences of 3 in the list, k.
-
$\begingroup$ @Harald you are welcome :) $\endgroup$image_doctor– image_doctor2012-05-05 10:40:59 +00:00Commented May 5, 2012 at 10:40
-
$\begingroup$ is there way to find position on the 1st level, but with criterion pointing on 2nd level 2nd position? Eg. To return position of 1st level list that contains
3on the 2nd position in it, then return2as a result. $\endgroup$Dragutin– Dragutin2016-07-04 10:34:14 +00:00Commented Jul 4, 2016 at 10:34
$\begingroup$
$\endgroup$
0
Position[] is the function you want:
la = RandomInteger[{-9, 9}, {8, 2}]
{{-4, -4}, {1, -8}, {3, 0}, {-2, -3}, {-3, -1}, {4, 9}, {2, 4}, {0, -2}}
Position[la, 0]
{{3, 2}, {8, 1}}
(* check results *)
la[[##]] & @@@ %
{0, 0}
Position[]. $\endgroup$Position, which is good to know. On an unrelated matter: why don't you accept those answers to your previous questions which you like or prefer. $\endgroup$