如何遍历一个列表的值,使用函数进行更改并将其添加到第二个列表?

Mat*_*ija 2 python list

我有以下温度列表:

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]
Run Code Online (Sandbox Code Playgroud)

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

from temp_functions import fahr_to_celsius, temp_classifier
Run Code Online (Sandbox Code Playgroud)

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

temp_classes =[]
Run Code Online (Sandbox Code Playgroud)

然后是for循环:

for循环应遍历temp_data中的所有值,通过更改它们

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

for t in temp_data:
    temp_celsius = []
    temp_celsius.append(fahr_to_celsius(t))
Run Code Online (Sandbox Code Playgroud)

问题:我只是获得第一个价值。我尝试了范围,len,= + 1和其他几个选项,但是没有运气。

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

这是我正在从事的一项工作:

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

thu*_*ief 7

另一种策略是使用Python列表理解:

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


Cid*_*Cid 5

您将在每次迭代时创建一个新列表。将列表的创建移到for循环之外:

temp_celsius = []
for t in temp_data:
    temp_celsius.append(fahr_to_celsius(t))
Run Code Online (Sandbox Code Playgroud)

  • @MatijaKordic您应该将该信息添加到问题中。根据您提供的信息,此答案是正确的。 (2认同)