If I have a list
list={3,7,4,5,1}
how to get the List of Intervals /Ranges
result = {{1,3},{3,4},{4,5},{5,7}}
Mathematica Stack Exchange is a question and answer site for users of Wolfram Mathematica. It only takes a minute to sign up.
Sign up to join this communityMaybe
Partition[Sort@list, 2, 1]
giving
{{1, 3}, {3, 4}, {4, 5}, {5, 7}}
Tom's answer is canonical, but you could also use:
With[{s = Sort[list]}, Transpose[{Most[s], Rest[s]}]]
which seems to be marginally faster for large lists. (In which case most of the time is spent sorting.)
Composition[Transpose, Through, {Most, Rest}, Sort][list]
.
$\endgroup$
Jan 22, 2012 at 4:26