[英]Having trouble with being selective in list comprehension
我需要使用列表推导将列表中的某些项目从摄氏温度转换为华氏温度。 我有温度清单。 我现在最好的猜测是这样的:
good_temps = [c_to_f(temp) for temp in temperatures if 9 < temperatures[temp] <32.6]
但是,我做的事情不正确,我无法弄清楚。
另一种答案指出的替代解决方案是使用过滤器来获取子集:
filter(lambda temp: 9 < temp < 32.6, temperatures)
然后进行列表理解以进行转换:
[c_to_f(temp) for temp in temperatures]
最终表达:
good_temps = [c_to_f(temp) for temp in filter(lambda t: 9 < t < 32.6, temperatures)]
你很亲密 您需要的是:
good_temps = [c_to_f(temp) for temp in temperatures if 9 < temp < 32.6]
该代码仅在大于9且小于32.6的情况temp
才转换temp
。 对于超出该范围的temp
值,不会将任何值添加到good_temps
。
temp
已经是来自temperatures
的项,因此temperatures[temp]
并没有多大意义,因为它试图将temperatures
项用作索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.