为何Python循环内打印列表会输出多组累加结果?求解决办法
摄氏度转开尔文代码输出多次列表的问题解决
原因
你把print(kelvin_values)写在了for循环内部,循环每执行一次(处理一个温度值),就会打印一次当前的kelvin_values列表状态,因此会输出三次逐步添加元素的列表,而非最终的完整列表。
解决方法
将print语句移到for循环外部,等所有温度值转换完成、列表构建完毕后再打印:
修改后的代码:
degrees_values = [0, 5.85, -2.5] kelvin_values = [] for degrees in degrees_values: kelvin = degrees + 273.15 kelvin_values = kelvin_values + [kelvin] print(kelvin_values) # 移至循环外部
另外补充一个小优化:列表添加元素时,使用append()方法比kelvin_values = kelvin_values + [kelvin]更高效,优化后代码如下:
degrees_values = [0, 5.85, -2.5] kelvin_values = [] for degrees in degrees_values: kelvin = degrees + 273.15 kelvin_values.append(kelvin) # 使用append添加元素 print(kelvin_values)
运行上述代码都会得到你期望的输出:
[273.15, 279.0, 270.65]
内容的提问来源于stack exchange,提问作者Matt Gwatkin
相关产品推荐
相关产品推荐

