我有一个数字列表,我必须使用一个函数以摄氏度显示它们,它们现在处于华氏度。
nums = [30,34,40,36,36,28,29,32,34,44,36,35,28,33,29,40,36,24,26,30,30,32,34,32,28,36,24,32]
def fahrenToCel(c):
c = (f - 32) * (5 / 9)
return c
print fahrenToCel(nums)
这就是我所拥有的,有人可以帮助我
答案 0 :(得分:1)
如果您有一个列表the_list
,并且想要为每个元素应用函数f
,请创建一个新的结果列表:
new_list = [f(x) for x in the_list]
答案 1 :(得分:1)
您的功能似乎将一个数字作为输入,但您要给它一个数字列表。如果要使用该函数生成转换后的数字列表,可以使用list comprehension:
cels = [fahrenToCel(fah) for fah in nums]
答案 2 :(得分:1)
print ','.join([str(fahrenToCel(fahren)) for fahren in nums])
这不仅会创建一个新列表,还会将其作为逗号分隔的字符串加入。
如果nums
相当长,则可以使用生成器表达式而不是列表推导来节省一些内存和性能。你只需要取下方括号:
print ','.join(str(fahrenToCel(fahren)) for fahren in nums)
答案 3 :(得分:1)
最简单的方法是使用 for 循环迭代列表并打印每个结果:
#!/usr/bin/env python
# def farentoCel(x): ...
# ...
if __name__ == '__main__':
import sys
for each_num in sys.argv[1:]:
print farentoCel(int(each_num))
正如其他人所说,你可以用列表推导(表达式)替换这个显式循环,甚至是生成器理解(在较新版本的Python中)。
在这种情况下,我展示了一个非常简单的骨架,供您用于测试简单的功能。 if _ name _ =='_ main _':套件是一种Python约定,用于分隔您的函数,类和其他定义从您的代码的运行时间。这可用于构造代码,以便可以在其他代码中重复使用(导入),同时在命令行实用程序(包装器)中公开某些功能或提供默认接口(可能是GUI)。
在相当常见的情况下,您的模块没有简单的可访问实用程序(只有在合并到其他代码时才有用),那么您可以使用'_ 主 _'套件来包含单元测试案例。