首页 > 解决方案 > 如何迭代一个列表的值,使用函数更改它并将其添加到第二个列表?

问题描述

我有这个温度列表:

temp_data =  [19, 21, 21, 21, 23, 23, 23, 21, 19, 21, 19, 21, 23, 27, 27, 28, 30, 30, 32, 32, 32, 32, 34, 34,
         34, 36, 36, 36, 36, 36, 36, 34, 34, 34, 34, 34, 34, 32, 30, 30, 30, 28, 28, 27, 27, 27, 23, 23,
         21, 21, 21, 19, 19, 19, 18, 18, 21, 27, 28, 30, 32, 34, 36, 37, 37, 37, 39, 39, 39, 39, 39, 39,
         41, 41, 41, 41, 41, 39, 39, 37, 37, 36, 36, 34, 34, 32, 30, 30, 28, 27, 27, 25, 23, 23, 21, 21,
         19, 19, 19, 18, 18, 18, 21, 25, 27, 28, 34, 34, 41, 37, 37, 39, 39, 39, 39, 41, 41, 39, 39, 39,
         39, 39, 41, 39, 39, 39, 37, 36, 34, 32, 28, 28, 27, 25, 25, 25, 23, 23, 23, 23, 21, 21, 21, 21,
         19, 21, 19, 21, 21, 19, 21, 27, 28, 32, 36, 36, 37, 39, 39, 39, 39, 39, 41, 41, 41, 41, 41, 41,
         41, 41, 41, 39, 37, 36, 36, 34, 32, 30, 28, 28, 27, 27, 25, 25, 23, 23, 23, 21, 21, 21, 19, 19,
         19, 19, 19, 19, 21, 23, 23, 23, 25, 27, 30, 36, 37, 37, 39, 39, 41, 41, 41, 39, 39, 41, 43, 43,
         43, 43, 43, 43, 43, 43, 43, 39, 37, 37, 37, 36, 36, 36, 36, 34, 32, 32, 32, 32, 30, 30, 28, 28,
         28, 27, 27, 27, 27, 25, 27, 27, 27, 28, 28, 28, 30, 32, 32, 32, 34, 34, 36, 36, 36, 37, 37, 37,
         37, 37, 37, 37, 37, 37, 36, 34, 30, 30, 27, 27, 25, 25, 23, 21, 21, 21, 21, 19, 19, 19, 19, 19,
         18, 18, 18, 18, 18, 19, 23, 27, 30, 32, 32, 32, 32, 32, 32, 34, 34, 34, 34, 34, 36, 36, 36, 36,
         36, 32, 32, 32, 32, 32, 32, 32, 32, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 28, 28]

我已经导入了一个我创建的具有两个功能的模块,将温度从华氏温度更改为摄氏温度,另一个根据摄氏温度分为 4 类。

from temp_functions import fahr_to_celsius, temp_classifier

因此,我还创建了一个空列表,根据摄氏度进行分类:

temp_classes =[]

然后是一个for循环:

for 循环应该遍历 temp_data 中的所有值,通过

fahr_to_celsius 函数,然后将它们附加到空列表 temp_celsius。

for t in temp_data:
    temp_celsius = []
    temp_celsius.append(fahr_to_celsius(t))

问题:我只得到第一个值。我尝试了 range、len、=+1 和其他几个,但没有运气。

编辑:从 OP 评论添加信息:

这是我正在处理的一项任务:

迭代 temp_data 列表(一个接一个)和循环内的华氏温度值:创建一个名为 temp_celsius 的新变量,您应该在其中使用 fahr_to_celsius 函数将华氏温度转换为摄氏温度,以摄氏度为单位分配温度。创建一个名为 temp_class 的新变量,您应该在其中使用 temp_classifier 函数分配温度等级编号(0、1、2 或 3) 将 temp_class 值添加到 temp_classes 列表

标签: pythonlist

解决方案


另一种策略是使用 Python 列表推导:

temp_celsius = [fahr_to_celsius(t) for t in temp_data]


推荐阅读