这可能是一个简单的问题,但我试图在外部循环中创建一个从0到9计数的嵌套循环,在内部循环中,从值(或索引)开始。它们是相同的在这种情况下)外循环并向后计数。
以下是一个例子:
i= 0
k= 0
i= 1
k= 1
k= 0
i= 2
k= 2
k= 1
k= 0
i= 3
k= 3
k= 2
k= 1
k= 0
我到目前为止:
x = range(0,10)
for i in x:
print 'i = ',x[i]
for k in x:
print 'k = ', x[i::-1]
显然,上面的代码没有按照我的意愿去做。例如,第二个for循环不是从外循环中的i值开始并向后计数。另一方面,它不会为每个新值打印新的k =
。
答案 0 :(得分:2)
我认为这应该是这样的:
x = range(0,10)
for i in x:
print 'i = ',x[i]
for k in x[i::-1]:
print 'k = ', k
print("\n")
结果是:
i = 0
k = 0
i = 1
k = 1
k = 0
i = 2
k = 2
k = 1
k = 0
i = 3
k = 3
k = 2
k = 1
k = 0
i = 4
k = 4
k = 3
k = 2
k = 1
k = 0
i = 5
k = 5
k = 4
k = 3
k = 2
k = 1
k = 0
i = 6
k = 6
k = 5
k = 4
k = 3
k = 2
k = 1
k = 0
i = 7
k = 7
k = 6
k = 5
k = 4
k = 3
k = 2
k = 1
k = 0
i = 8
k = 8
k = 7
k = 6
k = 5
k = 4
k = 3
k = 2
k = 1
k = 0
i = 9
k = 9
k = 8
k = 7
k = 6
k = 5
k = 4
k = 3
k = 2
k = 1
k = 0
基本上,x[i::-1]
应该在for不在印刷品中。
答案 1 :(得分:2)
如何用print
函数操作它?
i = 0
k = 0
while True:
print (i)
print (k)
if 1<k: #tricky part
print ("\n".join([str(h) for h in range(0,k+1)][::-1]))
print ("")
i += 1
k += 1
if i == 10:
break
答案 2 :(得分:0)
你非常接近。如果你是python世界的新手,你可以从这个我使用列表理解的例子中获得灵感。
list = lambda k: [ [ i for i in reversed(xrange(j+1)) ] for j in xrange(k+1) ]
注意:如果您使用的是python 3“ xrange ”已更改为“范围”
现在打电话:
list(3)
你会发现结果与你想要的结果相似。
[[0], [1, 0], [2, 1, 0], [3, 2, 1, 0]]