elm in list
The in operator evaluates to true if the object
elm is an element of the list list and to false
otherwise. elm is an element of list if there is a
positive integer index such that list[index]=elm
is true. elm may be an object of an arbitrary type
and list may be a list containing elements of any type.
It is much faster to test for membership for sets, because for sets, which
are always sorted (see Sets), in can use a binary search,
instead of the linear search used for ordinary lists. So if you have a list
for which you want to perform a large number of membership tests you may
consider converting it to a set with the function Set (see
Set).
gap> 1 in [ 2, 2, 1, 3 ];
true
gap> 1 in [ 4, -1, 0, 3 ];
false
gap> s := Set([2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32]);;
gap> 17 in s;
false # uses binary search and only 4 comparisons
gap> 1 in [ "This", "is", "a", "list", "of", "strings" ];
false
gap> [1,2] in [ [0,6], [0,4], [1,3], [1,5], [1,2], [3,4] ];
true
Position (see Position) and PositionSorted (see
PositionSorted) allow you to find the position of an element in a list.