Вопрос
Обратный цикл внутри цикла с тем же списком Автор вопроса: eozzy 19.01.2010 Ответов: 5
num = list(str(1234567))
for n1 in num:
print(n1)
for n2 in reversed(num):
print('\t', n2)
На каждой итерации он печатает первую цифру из первого цикла и все 7 из обратного цикла. Как я могу напечатать не все цифры, а только последнюю (т.е. первую) цифру из обратного цикла?
Спасибо
python loops for-loop reverse
Ответы Ответ 1 · рейтинг 7 · wich
Самый простой способ - просто заархивировать прямой и обратный списки вместе:
for n1, n2 in zip(num, reversed(num)):
print(n1, '\t', n2)
Ответ 2 · рейтинг 1 · Noufal Ibrahim
Вот слабая попытка. Это то, что вы ищете?
for idx,i in enumerate(x):
print(i,"\t",x[-(idx+1)])
Ответ 3 · рейтинг 1 · ezod
Вы имеете в виду вот так?
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
Ответ 4 · Rob Grant
Ничего общего с Python, но вот на Haskell :)
myDie = [1,2,3,4,5,6]
sevens = [ (x,y) | x <- myDie, y <- myDie, x+y == 7]
Ответ 5 · telliott99
Вы должны составить второй список:
>>> 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
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow .