Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 19, 2016 19:06:11

Qwerty16
Зарегистрирован: 2016-03-20
Сообщения: 38
Репутация: +  -1  -
Профиль   Отправить e-mail  

элементы линейного массива циклически сдвиньтуть на K позиций влево

def lol(a,k):
    k = k % len(a)
    r = [0] * len(a)
    for i in range(len(a)):
        if i + k <len(a) and i+k>=0:
            r[i] =a [i + k]
        if i + k >= len(a):
            r[i] = a[i + k-len(a)]
        if i + k < 0:
            r[i] = a[i + k+len(a)]
 
    return(r)

Я вот так сделал но нужно не использовать дополнительную матрицу, а как тогда сделать помогите

Офлайн

#2 Апрель 21, 2016 20:20:45

flasky
Зарегистрирован: 2016-04-21
Сообщения: 3
Репутация: +  1  -
Профиль  

элементы линейного массива циклически сдвиньтуть на K позиций влево

def cycler(lst, k):
    return [lst[k + i] for i in range(len(lst) - k)] + [lst[i] for i in range(k)]
print(cycler([1, 2, 3, 4, 5], 3))  # prints [4, 5, 1, 2, 3]

Отредактировано flasky (Апрель 21, 2016 20:21:13)

Офлайн

#3 Апрель 21, 2016 22:33:31

Qwerty16
Зарегистрирован: 2016-03-20
Сообщения: 38
Репутация: +  -1  -
Профиль   Отправить e-mail  

элементы линейного массива циклически сдвиньтуть на K позиций влево

Спасибо большое

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version