【发布时间】:2013-09-16 03:01:20
【问题描述】:
I'm taking this online Python course 并尝试解决以下称为编码练习的问题:这是自然的:
编写一个函数 naturalNumbers,它接受一个正整数 n 作为输入,并返回一个由前 n 个自然数组成的列表 [1, 2, ...]。
我什至需要一个 for 循环来创建一个列表吗?这是我的代码(显然不起作用)。请记住,他们没有教过列表理解。我在 stackoverflow 上发现了这个概念。
def naturalNumbers(n):
list = [n+1 for i in n]
return list
我是否应该采取另一种方法,创建多个 1,2,3...n 列表并将它们连接在一起,如 [1] + [2] + [3]....
【问题讨论】:
-
你的在线 Python 课程很奇怪。基本上要求你重新发明轮子(
range函数) -
事实上,你很难用一个列表来做到这一点。您的示例将给出一个错误,因为在
n中没有任何内容可以循环,因为n“不可迭代” -
S Gupta - 这正是我的想法。
-
尝试弄清楚如何实现内置函数有时很有用,这样您就可以了解它们在做什么,并看到使用它们的好处(
for循环 @987654327 @ 比带有显式计数器的while循环好得多),等等。出于类似的原因,我写了自己的itertools.groupby。但是,一旦你理解了事情,只需在你的真实代码和所有未来的学习中使用标准电池,当然。