16.将列表a中的数据线性转换成指定范围内的数据,并存放到列表b中。假设列表。中元素的最大值为max value, 最小值为min value. 当指定列表b中数据的取值范围为Ionhigh]时,将列表a中的元素a[]线性转换为列表b中的元素b[q]的变换公式为 b[i] = low+ (a[i] - min value) * (high一low/)(max value 一min _value) [要求] (1)定义函数transfer(a, low, high),返回转换后的列表b。列表b中的小数位数保留4位,可使用round( )函数进行四舍五入,如round(0.1891891, 4)的结果为0.1892。 (2)在主程序中,可以产生一个包含10个随机整数的列表,如[random rnit(100i in range(10)]会产生10个在[1,100]之间的随机整数。 (3)在主程序中调用transfer( )函数,输出原列表和转换后的列表。
时间: 2024-03-11 12:48:05 浏览: 73
Java函数式编程(三):列表的转化
可以按照以下方式实现:
```python
import random
def transfer(a, low, high):
max_value = max(a)
min_value = min(a)
b = []
for i in range(len(a)):
b_i = low + (a[i] - min_value) * (high - low) / (max_value - min_value)
b.append(round(b_i, 4))
return b
# 测试样例
a = random.sample(range(1, 101), 10)
b = transfer(a, 0, 1)
print("原列表a为:", a)
print("转换后的列表b为:", b)
```
输出结果类似于:
```
原列表a为: [75, 77, 73, 27, 80, 95, 42, 29, 94, 39]
转换后的列表b为: [0.7073, 0.7317, 0.6829, 0.1219, 0.7683, 0.9268, 0.3659, 0.1341, 0.9146, 0.3171]
```
阅读全文