Python – 产生 K 个均匀分布的浮点值
给定一个范围和元素 K,生成 K 个均匀分布的浮点值。
Input : i = 4, j = 6, K = 10
Output : [4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.6, 5.8, 6.0]
Explanation : The difference 0.2 is added after 4 to produce 10 elements till 6.
Input : i = 10, j = 20, K = 2
Output : [15.0, 20.0]
Explanation : 5 is difference and is added each time.
方法#1:使用循环
这是可以执行此任务的方式之一。在此,我们迭代直到 K,同时增加连续元素之间差异的计数器。
Python3
# Python3 code to demonstrate working of
# Produce K evenly spaced float values
# Using loop
# initializing range
i, j = 2, 10
# Initialize K
K = 15
# computing difference
diff = (j - i) / K
res = []
# using loop to add numbers to result
for idx in range(1, K + 1):
res.append(i + (diff * idx))
# printing result
print("The constructed list : " + str(res))
Python3
# Python3 code to demonstrate working of
# Produce K evenly spaced float values
# Using loop
# initializing range
i, j = 2, 10
# Initialize K
K = 15
# computing difference
diff = (j - i) / K
# using list comprehension to formulate elements
res = [i + (diff * idx) for idx in range(1, K + 1)]
# printing result
print("The constructed list : " + str(res))
The constructed list : [2.533333333333333, 3.0666666666666664, 3.6, 4.133333333333333, 4.666666666666666, 5.2, 5.733333333333333, 6.266666666666667, 6.8, 7.333333333333333, 7.866666666666666, 8.4, 8.933333333333334, 9.466666666666667, 10.0]
方法#2:使用列表推导
该方法的工作原理与上述方法类似。不同之处在于使用列表理解制定此解决方案的紧凑方式。
Python3
# Python3 code to demonstrate working of
# Produce K evenly spaced float values
# Using loop
# initializing range
i, j = 2, 10
# Initialize K
K = 15
# computing difference
diff = (j - i) / K
# using list comprehension to formulate elements
res = [i + (diff * idx) for idx in range(1, K + 1)]
# printing result
print("The constructed list : " + str(res))
The constructed list : [2.533333333333333, 3.0666666666666664, 3.6, 4.133333333333333, 4.666666666666666, 5.2, 5.733333333333333, 6.266666666666667, 6.8, 7.333333333333333, 7.866666666666666, 8.4, 8.933333333333334, 9.466666666666667, 10.0]