在具有相同列表的循环内反向循环

时间:2010-01-19 16:34:06

标签: python loops for-loop reverse

num = list(str(1234567))

for n1 in num:
    print n1
    for n2 in reversed(num):
        print '\t', n2

在每次迭代中,它打印第一个循环的第一个数字和反向循环的所有7个数字。如何打印不是所有数字而只打印反向循环中的最后一个(即第一个)数字?

由于

5 个答案:

答案 0 :(得分:7)

最简单的方法是将前进和后退列表压缩在一起:

for n1, n2 in izip(num, reversed(num)):
    print n1, '\t', n2

答案 1 :(得分:1)

这是一次微弱的尝试。这是你要找的那种东西吗?

 for idx,i in enumerate(x):
     print i,"\t",x[-(idx+1)]

答案 2 :(得分:1)

你的意思是这样吗?

num = list(str(1234567))
for i in range(len(num)):
    print num[i], '\t', num[-(i+1)]

输出是:

1       7                       
2       6                       
3       5                       
4       4                       
5       3                       
6       2                       
7       1  

答案 3 :(得分:0)

你应该制作第二个清单:

>>> num_rev = num[:]
>>> num_rev.reverse()
>>> num_rev
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

然后执行以下操作:

>>> for n1,n2 in zip(num,num_rev): 
...     print n1, n2
... 
0 9
1 8
2 7
3 6
4 5
5 4
6 3
7 2
8 1
9 0

答案 4 :(得分:0)

与Python没什么关系,但这里是在Haskell中:)

myDie  = [1,2,3,4,5,6]
sevens = [ (x,y) | x <- myDie, y <- myDie, x+y == 7]