我有一个特殊的功能:
def create4(n):
output = []
for i in range(n):
output.append(range(1+i,1))
return output
我希望它能够产生
[[1,2,3,4,5], [1,2,3,4], [1,2,3], [1,2],[1]]
表示我print create4(5)
的时间。如何更改for循环使代码生成所需的输出?
答案 0 :(得分:1)
您可以使用范围(a,b,-1)从a到b倒计时。
def func(n) :
output = []
for i in range(n+1,1,-1):
output.append(range(1,i))
return output
print func(4)
为了打印[[1,2,3,4],[2,3,4] ...... [4]]:
def func(n) :
output = []
for i in range(1,n+1):
output.append(range(i,n+1))
return output
print func(4)
答案 1 :(得分:0)
你的for循环中有range
的参数乱序。 range(m, n)
将为您提供 x 的整数范围,其中m≤x< Ñ
另请注意,虽然这可以在python 2.7下执行所需,但在python 3.x中,它们已将范围更改为始终返回迭代器。为安全起见,请将每次通话打包到range
中的list()
。
答案 2 :(得分:0)
def create4(n):
return sorted([range(1,x) for x in xrange(2,n+2)], reverse=True)