将列表a中的数据线性转换成指定范围内的数据,并存放到列表b中,假设列表a中元素的最大值为max_view,最小值为min_view。当指定列表b中数据的取值范围为[low, high]时,将列表a中的元素a[i]线性转化为列表b用的元素b[i]的变换公式为b[i]=low+{a[i]-min_value)*{high-low)/(max_value-min_value)(1).定义函数transfer(a,low,high),返回转换后的列表b。列表b中的小数位数保留四位,可使用round()函数进行四舍五入,如round(0.1891891,4)的结果为0.1892。(2).在主程序中,可以产生一个包含10个随机整数的列表,如[random.randint(1,100) for i in range(10)]会产生10个在[1,100]之间的随机整数。(3).在主程序中调用transfer()函数,输出原列表和转换后的列表。测试数据如下:列表a:[98,35,38,100,92,99,45,94,100,3] 转换后数据的下限和上限:0,1 转换后列表b:[0.9794,0.3299,0.3608,1.0,0.9175,0.9897,0.433,0.9381,1.0,0.0]
时间: 2024-02-15 18:06:04 浏览: 132
python 将一个列表的数据复制到另一个列表中(示例)
好的,我明白了。下面是代码实现:
```python
def transfer(a, low, high):
max_view = max(a)
min_view = min(a)
b = [(low + (i - min_view) * (high - low) / (max_view - min_view)) for i in a]
b = [round(i, 4) for i in b]
return b
# 测试数据
a = [98, 35, 38, 100, 92, 99, 45, 94, 100, 3]
low, high = 0, 1
b = transfer(a, low, high)
# 输出结果
print("原列表a:", a)
print("转换后列表b:", b)
```
输出结果为:
```
原列表a: [98, 35, 38, 100, 92, 99, 45, 94, 100, 3]
转换后列表b: [0.9794, 0.3299, 0.3608, 1.0, 0.9175, 0.9897, 0.433, 0.9381, 1.0, 0.0]
```
希望我的回答能够帮到你。
阅读全文