Python 如何从for循环创建列表

Python 如何从for循环创建列表,python,for-loop,Python,For Loop,我试图从一个函数和一个for循环创建一个数字列表。这是我的代码副本: Rh = 1096776000000 print "What is your value for 'n'?" n = float(raw_input(">")) m = range(int(n+1), int(n+21)) def wavelength(a,b): list = [((1 / (Rh * ((1 / (a**2)) - (1 / (float(x)**2))))) * 10 ** 14)

我试图从一个函数和一个for循环创建一个数字列表。这是我的代码副本:

Rh = 1096776000000

print "What is your value for 'n'?"
n = float(raw_input(">"))

m = range(int(n+1), int(n+21))

def wavelength(a,b):
    list = [((1 / (Rh * ((1 / (a**2)) - (1 / (float(x)**2))))) * 10 ** 14)
    for x in b]
    return list


for elements in wavelength(n,m):
    print "%.3f" % elements, 'nm'

这将打印出我想要的内容,但我需要获取所有数据点并将它们放入列表中。有什么想法吗?

我想你需要这样的东西:

l = [] # An empty list
for elements in wavelength(n,m):
    l.append("%.3f" % elements, 'nm') # Adding rounded values to the list
print l # Print the full list 

但数据已经在列表中。
result=wavelength(n,m)
有什么问题吗?我猜不是正确的舍入,@kevinI同意@Kevin。数据已经存在,不需要因为舍入而复制和管理第二个列表。存储的数据应该尽可能精确,并且只有在被访问时才应该进行适当的格式化。我明白了,但我猜他的取整也不是无缘无故的。“只有当它被访问时”。。。如果他现在想访问它呢?无论如何,我用OP(似乎已经)想要的格式回答了这个问题。
results = ["%.3f nm" % elements for elements in wavelength(n,m)]