Python嵌套循环计数向后

时间:2015-02-04 23:44:39

标签: python for-loop

这可能是一个简单的问题,但我试图在外部循环中创建一个从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 =

3 个答案:

答案 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]]