【问题标题】:Python Nested For Loop Counting BackwardsPython嵌套For循环向后计数
【发布时间】:2015-02-04 23:44:38
【问题描述】:

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

【问题讨论】:

  • 我在这里假设k[i::-1] 真的是x[i::-1],不是吗?
  • 或者你可以通过range( i, -1, -1 )获取[ i, i-1, i-2, ...., 2, 1, 0]

标签: python for-loop


【解决方案1】:

我觉得应该是这样的:

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 而不是在打印中。

【讨论】:

  • 还有x[i] > i,你在那里
  • @RicardoCárdenes 你是什么意思?
  • 对不起,我不明白你的评论。
  • x 是一个整数范围。在这种情况下,使用x[i] 毫无意义,因为i... 是x[i]!与您直接打印k 相同,而不是x[k]
【解决方案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

【讨论】:

    【解决方案3】:

    你很亲密。如果您是 python 世界的新手,您可以从我使用列表推导的这个示例中获得一些灵感。

    list = lambda k: [ [ i for i in reversed(xrange(j+1)) ] for j in xrange(k+1) ]

    注意:如果你使用python 3“xrange”改为“range

    现在打电话:

    list(3)

    您会看到结果与您正在寻找的结果相似。

    [[0], [1, 0], [2, 1, 0], [3, 2, 1, 0]]

    【讨论】:

    • 提问者想要打印结果,而不是放在列表中。但很好的答案!
    猜你喜欢
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2022-08-05
    • 2015-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多