Python列表生成式实现线性比例尺


把一个列表映射到0到300的尺子上:最小的映射为0,最大的映射为300

dataset = [1.2, 2.3, 0.9, 1.5, 3.3]
def linear(dataset):
    _min = min(dataset)
    _max = max(dataset)
    return [0 if x == _min else int(x/_max * 300) for x in dataset]

print(linear(dataset))
# [109, 209, 0, 136, 300]