使用函数显示列表中的数字

时间:2011-04-12 22:15:20

标签: python

我有一个数字列表,我必须使用一个函数以摄氏度显示它们,它们现在处于华氏度。

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)

这就是我所拥有的,有人可以帮助我

4 个答案:

答案 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)。

在相当常见的情况下,您的模块没有简单的可访问实用程序(只有在合并到其他代码时才有用),那么您可以使用'_ _'套件来包含单元测试案例。