Floating-Point Iteration with range()
In Python, the range() function conveniently generates a sequence of integers. However, it lacks straightforward support for floating-point numbers. This article addresses the question of how to create a range-like sequence for floats in Python.
The standard range() function accepts integer values as its start, stop, and step arguments. Attempting to use floating-point arguments for the step parameter results in a ValueError. This is because the step parameter represents the increment between elements in the sequence, and it must not be zero.
Equivalent Approaches for Floating-Point Ranges
To achieve floating-point iteration using range(), one approach is to scale the arguments by a factor of 10. For example:
<code class="python">>>> range(0.5, 5, 1.5) # Invalid: range() step argument must not be zero [0, 1, 2, 3, 4]</code>
<code class="python">>>> [x / 10.0 for x in range(5, 50, 15)] [0.5, 1.5, 2.5, 3.5, 4.5]</code>
By multiplying the step value by 10, we essentially create a sequence of integers and then divide each element by 10 to obtain the floating-point sequence.
Another approach involves using lambda functions and the map() function:
<code class="python">>>> map(lambda x: x / 10.0, range(5, 50, 15)) <map object at 0x10440b0e8></code>
The lambda function transforms each integer in the range into its corresponding floating-point value, and map() applies this function to every element in the sequence. The result is a map object that can be iterated over to produce the desired floating-point range.
The above is the detailed content of How to Create Floating-Point Ranges with range() in Python?. For more information, please follow other related articles on the PHP Chinese website!