Popular recipes tagged "range" but not "fun"http://code.activestate.com/recipes/tags/range-fun/2015-01-12T22:16:37-08:00ActiveState Code RecipesEqually-spaced numbers (linspace) (Python)
2015-01-12T22:16:37-08:00Andrew Barnerthttp://code.activestate.com/recipes/users/4184316/http://code.activestate.com/recipes/579000-equally-spaced-numbers-linspace/
<p style="color: grey">
Python
recipe 579000
by <a href="/recipes/users/4184316/">Andrew Barnert</a>
(<a href="/recipes/tags/float/">float</a>, <a href="/recipes/tags/linspace/">linspace</a>, <a href="/recipes/tags/range/">range</a>, <a href="/recipes/tags/spread/">spread</a>).
</p>
<p>An equivalent of <a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html"><code>numpy.linspace</code></a>, but as a pure-Python lazy sequence.</p>
<p>Like NumPy's <code>linspace</code>, but unlike the <a href="http://code.activestate.com/recipes/577068/"><code>spread</code></a> and <a href="http://code.activestate.com/recipes/577068/"><code>frange</code></a> recipes listed here, the <code>num</code> argument specifies the number of values, not the number of intervals, and the range is closed, not half-open.</p>
<p>Although this is primarily designed for floats, it will work for <code>Fraction</code>, <code>Decimal</code>, NumPy arrays (although this would be silly) and even <code>datetime</code> values.</p>
<p>This recipe can also serve as an example for creating lazy sequences.</p>
<p>See the discussion below for caveats.</p>
Numbers as Ranges - iterable integers (C++)
2014-10-02T12:13:52-07:00elazarhttp://code.activestate.com/recipes/users/4187847/http://code.activestate.com/recipes/578945-numbers-as-ranges-iterable-integers/
<p style="color: grey">
C++
recipe 578945
by <a href="/recipes/users/4187847/">elazar</a>
(<a href="/recipes/tags/iterable/">iterable</a>, <a href="/recipes/tags/range/">range</a>).
Revision 2.
</p>
<p>This header file makes simple integers iterable.
Note that it works only on C++11 or above.</p>
<p>Usage:</p>
<pre class="prettyprint"><code>#include "num_range.h"
for (int i : 3) cout << i << endl;
</code></pre>
<p>Output:
0
1
2</p>
<p>Implementation note:
This code is far too generic. We only need <code>DerefableInt</code>.
The templates are there for no practical reason.</p>
<p>Cons:
pollutes namespace std;
nonstandard idiom;</p>
Factorial (Python)
2014-03-08T13:09:41-08:00Johnhttp://code.activestate.com/recipes/users/4189390/http://code.activestate.com/recipes/578848-factorial/
<p style="color: grey">
Python
recipe 578848
by <a href="/recipes/users/4189390/">John</a>
(<a href="/recipes/tags/factorial/">factorial</a>, <a href="/recipes/tags/loop/">loop</a>, <a href="/recipes/tags/loops/">loops</a>, <a href="/recipes/tags/math/">math</a>, <a href="/recipes/tags/range/">range</a>, <a href="/recipes/tags/simple/">simple</a>).
</p>
<p>Just a simple factorial program I made in Python 3.</p>
Wav audio file dynamic range compressor (C)
2013-04-18T15:04:25-07:00Granning Stolinehttp://code.activestate.com/recipes/users/4186069/http://code.activestate.com/recipes/578510-wav-audio-file-dynamic-range-compressor/
<p style="color: grey">
C
recipe 578510
by <a href="/recipes/users/4186069/">Granning Stoline</a>
(<a href="/recipes/tags/audio/">audio</a>, <a href="/recipes/tags/compressor/">compressor</a>, <a href="/recipes/tags/dynamic/">dynamic</a>, <a href="/recipes/tags/file/">file</a>, <a href="/recipes/tags/range/">range</a>, <a href="/recipes/tags/wav/">wav</a>).
Revision 4.
</p>
<p>Wav audio file dynamic range compressor</p>
Generate equally-spaced floats (Python)
2011-09-24T18:49:39-07:00Steven D'Apranohttp://code.activestate.com/recipes/users/4172944/http://code.activestate.com/recipes/577878-generate-equally-spaced-floats/
<p style="color: grey">
Python
recipe 577878
by <a href="/recipes/users/4172944/">Steven D'Aprano</a>
(<a href="/recipes/tags/float/">float</a>, <a href="/recipes/tags/range/">range</a>, <a href="/recipes/tags/spread/">spread</a>).
</p>
<p>Generating a list of equally-spaced floats can surprising due to floating point rounding. See, for example, the recipe for a <a href="http://code.activestate.com/recipes/577068">floating point range</a>. One way of avoiding some surprises is by changing the API: instead of specifying a start, stop and step values, instead use a start, stop and count:</p>
<pre class="prettyprint"><code>>>> list(spread(0.0, 2.1, 7))
[0.0, 0.3, 0.6, 0.9, 1.2, 1.5, 1.8]
</code></pre>
<p>Like <a href="http://code.activestate.com/recipes/577068">frange</a> <code>spread</code> takes an optional mode argument to select whether the start and end values are included. By default, start is included and end is not, and exactly count values are returned.</p>
Equally-spaced floats part 2 (Python)
2011-09-27T15:48:00-07:00Steven D'Apranohttp://code.activestate.com/recipes/users/4172944/http://code.activestate.com/recipes/577881-equally-spaced-floats-part-2/
<p style="color: grey">
Python
recipe 577881
by <a href="/recipes/users/4172944/">Steven D'Aprano</a>
(<a href="/recipes/tags/float/">float</a>, <a href="/recipes/tags/range/">range</a>, <a href="/recipes/tags/spread/">spread</a>).
</p>
<p>See the recipe <a href="http://code.activestate.com/recipes/577878">here</a> for a description of the problem.</p>
<p>This variant allows the user to choose between two APIs, either by supplying the count, start value and end value:</p>
<pre class="prettyprint"><code>>>> list(spread(5, 1.0, end=2.0))
[1.0, 1.2, 1.4, 1.6, 1.8]
</code></pre>
<p>or the count, start value and step size:</p>
<pre class="prettyprint"><code>>>> list(spread(5, 1.0, step=-0.25))
[1.0, 0.75, 0.5, 0.25, 0.0]
</code></pre>
<p>As before, the count argument specifies how many subdivisions are made. The optional argument <code>mode</code> selects whether the start and end values are included. By default, start is included and end is not, and exactly count values are returned.</p>
Special Range Function for Different Kinds of Ranges (int, float, character) (Python)
2011-03-30T16:42:47-07:00Sunjay Varmahttp://code.activestate.com/recipes/users/4174115/http://code.activestate.com/recipes/577583-special-range-function-for-different-kinds-of-rang/
<p style="color: grey">
Python
recipe 577583
by <a href="/recipes/users/4174115/">Sunjay Varma</a>
(<a href="/recipes/tags/character/">character</a>, <a href="/recipes/tags/float/">float</a>, <a href="/recipes/tags/integer/">integer</a>, <a href="/recipes/tags/python/">python</a>, <a href="/recipes/tags/range/">range</a>, <a href="/recipes/tags/special/">special</a>).
Revision 3.
</p>
<p>This module allows the user to create a more verbose set of ranges. Simple character ranges, and float ranges are supported.</p>
<p>Supported Ranges:</p>
<ul>
<li>Basic Integer Ranges</li>
<li>Float Ranges (as accurate as a float range can get)</li>
<li>Simple character ranges (lowercase to lowercase, uppercase to uppercase, etc.)</li>
</ul>
<p>It should work in Python 2 and Python 3.</p>
<p><strong>If you tested this for speed, or want to test this for speed, please post the results! (And your system specs)</strong></p>
<p><strong>Edit:</strong> Found a really silly error of mine when using range instead of xrange in these functions!</p>
Generate List of Numbers from Hyphenated and comma separeted string like "1-5,25-30,4,5" (Python)
2010-07-01T02:08:09-07:00Siddhant Sanyamhttp://code.activestate.com/recipes/users/4174317/http://code.activestate.com/recipes/577279-generate-list-of-numbers-from-hyphenated-and-comma/
<p style="color: grey">
Python
recipe 577279
by <a href="/recipes/users/4174317/">Siddhant Sanyam</a>
(<a href="/recipes/tags/hypen/">hypen</a>, <a href="/recipes/tags/list/">list</a>, <a href="/recipes/tags/range/">range</a>).
</p>
<p>This function takes a range in form of "a-b" and generate a list of numbers between a and b inclusive.
Also accepts comma separated ranges like "a-b,c-d,f" will build a list which will include numbers from a to b, a to d and f
Example:
hyphen_range('54-78')
hyphen_range('57-78,454,45,1-10')
hyphen_range('94-100,1052,2-50')</p>
Improved range function (Python)
2010-06-07T01:50:20-07:00Sunjay Varmahttp://code.activestate.com/recipes/users/4174115/http://code.activestate.com/recipes/577256-improved-range-function/
<p style="color: grey">
Python
recipe 577256
by <a href="/recipes/users/4174115/">Sunjay Varma</a>
(<a href="/recipes/tags/float/">float</a>, <a href="/recipes/tags/python/">python</a>, <a href="/recipes/tags/range/">range</a>, <a href="/recipes/tags/replace/">replace</a>).
Revision 2.
</p>
<p>While using the built-in range function a while ago. I found an odd (perhaps bug) where the range function couldn't use float steps. I am not sure if that was intended for simplicity or not, but I wrote my own range function that goes beyond that anyway.</p>
Floating point range (Python)
2010-02-24T07:12:55-08:00Steven D'Apranohttp://code.activestate.com/recipes/users/4172944/http://code.activestate.com/recipes/577068-floating-point-range/
<p style="color: grey">
Python
recipe 577068
by <a href="/recipes/users/4172944/">Steven D'Aprano</a>
(<a href="/recipes/tags/float/">float</a>, <a href="/recipes/tags/math/">math</a>, <a href="/recipes/tags/maths/">maths</a>, <a href="/recipes/tags/range/">range</a>).
</p>
<p>Generator that produces floats, equivalent to range for integers, minimising rounding errors by using only a single multiplication and addition for each number, and no divisions.</p>
<p>This generator takes an optional argument controlling whether it produces numbers from the open, closed, or half-open interval.</p>
Reversed Ranges (Python)
2014-03-29T12:43:26-07:00Tal Einathttp://code.activestate.com/recipes/users/2892534/http://code.activestate.com/recipes/576801-reversed-ranges/
<p style="color: grey">
Python
recipe 576801
by <a href="/recipes/users/2892534/">Tal Einat</a>
(<a href="/recipes/tags/iteration/">iteration</a>, <a href="/recipes/tags/range/">range</a>, <a href="/recipes/tags/reverse/">reverse</a>).
Revision 16.
</p>
<p>A simple function for efficiently iterating over ranges in reverse.</p>
<p>This is equivalent to reversed(range(...)) but somewhat more efficient.</p>