Как зациклить список в обратном порядке и пропустить последний элемент - PullRequest
0 голосов
/ 05 октября 2018

Я знаю, что могу иметь for i in x[::-1]: для просмотра списка в обратном порядке.Но что, если я хочу пропустить последний элемент, а затем перейти от максимума к минимуму?for i in x[-1:0:-1] не работает

x = [1,2,3,4,5]
=> 4,3,2,1         #  desired

for i in x[-1:-1]:
    print(i)

# it does not work

Ответы [ 4 ]

0 голосов
/ 05 октября 2018

Ответы, которые включают нарезку списков, вероятно, являются лучшими, но это также может быть сделано с перечислением.

x = [1, 2, 3, 4, 5]
for index, value in enumerate(reversed(x)):
    val = value-1
    if val:
        print(val)

Опять же, нарезка ответов лучше в смысле «большого О», но не мешает увидеть несколько способов сделать что-то.

0 голосов
/ 05 октября 2018

Вы можете использовать двойную нарезку вот так

for i in x[::-1][1:]:
    print(i)
0 голосов
/ 05 октября 2018

может измениться после удаления для цикла:

for i in x[:-1][::1]:
    print(i)
0 голосов
/ 05 октября 2018

Вам нужно начать с -2, поскольку -1 начинается с последнего элемента:

for i in x[-2::-1]:
    print(i)

В качестве альтернативы, вы можете использовать reversed с нарезкой списка:

for i in reversed(x[:-1]):
    print(i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...