python - 如何迭代一个列表的值,使用函数更改它并将其添加到第二个列表?
问题描述
我有这个温度列表:
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 列表
解决方案
另一种策略是使用 Python 列表推导:
temp_celsius = [fahr_to_celsius(t) for t in temp_data]
推荐阅读
- mysql - DELETE 语句未在表上使用 INDEX 并长时间执行
- c# - 如果用户名或模式名称更改,则基于代码的迁移在 Oracle 数据库上不起作用
- c++ - 避免来自 C 或 C++ 标准输入流的控制序列(如 ^[[C)
- ios - 将 tableview 单元格数据传递给另一个没有故事板的视图控制器
- html - 下载电子邮件图片后 Outlook 字体系列丢失
- android - 如何在本地通知中点击本地通知启动特定屏幕
- php - Laravel:按标签存在的百分比获取相似的帖子
- wpf - 如何将控件模板添加到资源字典?
- java - 将文本字段添加到 JCheckBoxMenuItem
- oracle-cloud-infrastructure - Oracle Cloud Kubernetes CSI 实施是否依赖弹性卷?