Циклический сдвиг

Kvark

Новичок
Пользователь
Июн 13, 2020
10
0
1
Код:
"""cyclic shift"""
def cyclic_shift (A,N):
    tmp = A[0]
    for k in range (N-1):
        A[k] = A[k+1]
        A[N-1] = tmp


def test_cyclyc_shift():

    A1 = [1, 2, 3, 4, 5]
    cyclic_shift(A1, 5)


    print(A1)
test_cyclyc_shift()



Стремлюсь добиться такого результата:

[2, 3, 4, 5, 1].

В чем ошибка?
 

Insomnia78

Пользователь
Пользователь
Май 3, 2020
20
9
3
У тебя не меняется tmp в ходе цикла
 

Kvark

Новичок
Пользователь
Июн 13, 2020
10
0
1
У тебя не меняется tmp в ходе цикла
А как оно должно меняться? Я положил туда нулевой член, чтобы перебросить его на место последнего.
Вот только получается, что его рано перебрасывает и поэтому две единицы получается в конце.
 

Insomnia78

Пользователь
Пользователь
Май 3, 2020
20
9
3
А как оно должно меняться? Я положил туда нулевой член, чтобы перебросить его на место последнего.
Вот только получается, что но его рано перебрасывает и поэтому две единицы получается в конце.
Ты сам себе ответил на вопрос - перебрось позже
 

Insomnia78

Пользователь
Пользователь
Май 3, 2020
20
9
3
А как оно должно меняться? Я положил туда нулевой член, чтобы перебросить его на место последнего.
Вот только получается, что его рано перебрасывает и поэтому две единицы получается в конце.
Screenshot_20200613-073143_Samsung Internet.jpg
 
  • Мне нравится
Реакции: Kvark

Kvark

Новичок
Пользователь
Июн 13, 2020
10
0
1
Ты сам себе ответил на вопрос - перебрось позже
Куда позже-то - не пойму. A[N - 1] = tmp и так в конце стоит, как я понимаю.
 

Kvark

Новичок
Пользователь
Июн 13, 2020
10
0
1
 

Форум IT Специалистов