您要找的是
list comprehension:
def inCelsius(temperature):
return (temperature / 2) - 20
x = [[temperature, inCelsius(temperature)] for temperature in range(-10, 110, 10)]
这会产生:
>>> x
[[-10, -25.0], [0, -20.0], [10, -15.0], [20, -10.0], [30, -5.0], [40, 0.0], [50, 5.0], [60, 10.0], [70, 15.0], [80, 20.0], [90, 25.0], [100, 30.0]]
显然你的inCelsius()转换会有所不同.
请注意,您不需要提前设置列表;列表理解为你做了.另请注意,Python的list insert()将在指定的位置插入提供的项目.这意味着它会增加列表的大小 – 除非你从头开始增长二维列表,否则你不需要它.
conversion = {temperature: inCelsius(temperature) for temperature in range(-10, 110, 10)}
这意味着您可以将转换用作“预先计算的缓存”来查找以摄氏度为单位的华氏温度值:
>>> conversion[10]
-15.0
这意味着您只需按每个值计算一次温度.如果转换很复杂或处理器密集,这是一种非常方便的优化.