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

3zz*_*zzy 2 python reverse loops for-loop

num = list(str(1234567))

for n1 in num:
    print n1
    for n2 in reversed(num):
        print '\t', n2
Run Code Online (Sandbox Code Playgroud)

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

谢谢

wic*_*ich 7

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

for n1, n2 in izip(num, reversed(num)):
    print n1, '\t', n2
Run Code Online (Sandbox Code Playgroud)

  • 需要`来自itertools import izip`,但这也适用于`zip()`. (2认同)
  • @Nimbuz,正如ezod所说,izip来自itertools.不同之处在于,如果您有大型列表,它的内存效率会更高.它不会一次创建整个列表,而是一次生成一个元素. (2认同)