num = list(str(1234567)) for n1 in num: print n1 for n2 in reversed(num): print '\t', n2
На каждой итерации печатается первая цифра из первого цикла и все 7 из обратного цикла. Как я могу напечатать не все цифры, а только последнюю (т.е. первую) цифру из обратной петли?
Спасибо
Самый простой способ - просто сжать прямой и обратный списки вместе:
for n1, n2 in izip(num, reversed(num)): print n1, '\t', n2
Вы имеете в виду, как это?
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
Вот слабая попытка. Это то, что вы ищете?
for idx,i in enumerate(x): print i,"\t",x[-(idx+1)]
Ничего общего с Python, но здесь он есть в Haskell:)
myDie = [1,2,3,4,5,6] sevens = [ (x,y) | x <- myDie, y <- myDie, x+y == 7]
Вы должны составить второй список:
>>> 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