Форум сайта python.su
-1
def lol(s,k):
k %= len(s)
i = 0
for j in range(len(s)-k):
s[i], s[i+k] = s[i+k], s[i]
i += 1
return s
Офлайн
5
А почему у вас в условии цикла переменная j, а в теле цикла i?
Офлайн
-1
i индекс а j переменная цикла
Офлайн
5
А не проще ли так:
def lol(s,k): k %= len(s) s = s[k:]+s[:k] return s
Отредактировано Elaphe (Апрель 23, 2016 23:26:37)
Офлайн
-1
я так делал но через срезы нельзя
Офлайн
5
Тогда k раз сделать pop(0) и добавить полученный элемент в конец?
def lol(s,k): k %= len(s) while k>0: n = s.pop(0) s+=n k-=1 return s
Офлайн
-1
а через for и range можно както зделать
Офлайн
5
У вас ошибка в логике работы программы. Вот эта строка:
s[i], s[i+k] = s[i+k], s[i]
s = [1,2,3,4,5,6,7]
k=3
Отредактировано Elaphe (Апрель 24, 2016 00:00:49)
Офлайн