Range Integer¶
Functionality¶
alias: List Range Int
Useful for generating sequences of Integer values. The code perhaps describes best what the two modes do:
def intRange(start=0, step=1, stop=1):
'''
"lazy range"
- step is always |step| (absolute)
- step is converted to negative if stop is less than start
'''
if start == stop:
return []
step = max(step, 1)
if stop < start:
step *= -1
return list(range(start, stop, step))
def countRange(start=0, step=1, count=10):
count = max(count, 0)
if count == 0:
return []
stop = (count*step) + start
return list(range(start, stop, step))
Inputs and Parameters¶
One UI parameter controls the behaviour of this Node; the Range | Count
Mode switch. The last input changes accordingly.
Mode | Input | Description |
---|---|---|
Both | Start | value to start at |
Step | value of the skip distance to the next value. The Step value is considered the absolute difference between successive numbers. | |
Range | Stop | last value to generate, don’t make values beyond this. If this value is lower than the start value then the sequence will be of descending values. |
Count | Count | number of values to produce given Start and Step. Never negative - negative produces an empty list |
A word on implementation:
This Node accepts only Integers and lists of Integers, so you must convert Floats to Int first. The reason is purely superficial - there is no reasonable argument not to automatically cast values.
Outputs¶
Integers only, in list form.
Examples¶
Non-vectorized
Int Range
intRange(0,1,10)
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
intRange(0,2,10)
>>> [0, 2, 4, 6, 8]
intRange(-4,1,6)
>>> [-4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
intRange(2,1,-4)
>>> [2, 1, 0, -1, -2, -3]
Count Range
countRange(0,1,5)
>>> [0, 1, 2, 3, 4]
countRange(0,2,5)
>>> [0, 2, 4, 6, 8]
countRange(-4,1,6)
>>> [-4, -3, -2, -1, 0, 1]
countRange(2,1,4)
>>> [2, 3, 4, 5]
Vectorized
Progress Thread in the issue tracker shows several examples.