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.
GAP 3.4.4