Python

Помогите решить задачу пожалуйста

Задача 8. Бегущие цифры

Вы пишете программу для маленького табло, в котором циклически повторяется один и тот же текст или числа — прямо как в каком-нибудь метро, автобусах или трамваях.

Дан список из N элементов и целое число K. Напишите программу, которая циклически сдвигает элементы списка вправо на K позиций. Используйте минимально возможное количество операций присваивания.

Пример 1:

Сдвиг: 1
Изначальный список: [1, 2, 3, 4, 5]
Сдвинутый список: [5, 1, 2, 3, 4]

Пример 2:

Сдвиг: 3
Изначальный список: [1, 4, -3, 0, 10]
Сдвинутый список: [-3, 0, 10, 1, 4]
Так?
Сергей Шмырёв
Сергей Шмырёв
95 699
Лучший ответ
Шерзодбек Абаралиев спасибо большое
Альберт Гилязов TypeError: 'type' object is not subscriptable
Я конечно не уверен, но ответ будет "Честер слишком имба, нёрф его плиз"
Виталя Царёв
Виталя Царёв
1 176
10 -3 0 1 2 3 4 5
shift = int(input('Сдвиг:'))
my_list = []
new_list = []
n = int(input('Kол-во элементов списка: '))
for i in range(n):
my_list.append(int(input('Введите элемент: ')))

elem = len(my_list) - shift

for _ in range(elem, n):
new_list.append(my_list[_])
for _ in range(0, elem):
new_list.append((my_list[_]))
print('Изначальный список: ', my_list)
print('Сдвинутый список: ', new_list)
Yuriy Sumskoy
Yuriy Sumskoy
466
initial_list = [1, 2, 3, 4, 5]
k = int(input('Введите сдвиг: '))

if k <= len(initial_list):
for index in range(len(initial_list)): # сдвигаем символы списка по новому индексу в соответствии со сдвигом
a = initial_list[index] - k - 1
print(initial_list[a], end= ' ')
else:
print(f'Сдвиг не может быть больше чем кол-во индексов в списке, введите сдвиг меньше "{len(initial_list)}"')
Vadim Monin Попробуйте ввести следующие данные: сдвиг 3, начальный список 1, 4, -3, 0, 10
def shift_list(shift, original_list):
temp = len(original_list)
if shift == temp:
return original_list
else:
shift = shift % temp
for _ in range(shift):
for index in range(temp):
original_list[index], original_list[temp-1] = original_list[temp-1], original_list[index]

return original_list
сам реши я усталь
Привет из Skillbox)))
(P.S. сдвиг не в ту сторону, но смысл задачи вот такой)

N = int(input("Кол-во элементов: "))
start_list = []
finish_list = []

for _ in range(N):
element = input("Введите элемент списка:")
start_list.append(element)

K = int(input("Сдвиг: "))
index = 0
while index < N - 1:
empty_place = start_list[index]
start_list[index] = start_list[index - K]
start_list[index - K] = empty_place
index += 1

print(start_list)
Сергей Н Попробуйте ввести следующие данные: сдвиг 3, начальный список 1, 4, -3, 0, 10
Константин Клишин # TODO здесь писать код


step = int(input("Введите шаг: "))
N = int(input("Кол-во элементов: "))
start_list = []
finish_list = []

for _ in range(N):
element = int(input("Введите элемент списка: "))
start_list.append(element)

for i in range(N):

new_place = start_list[i - step]
finish_list.append(new_place)
print("Изначальный список: ", start_list)
print("Сдвинутый список: ",finish_list)
n = int(input('Кол-во элементов в списке: '))
num_list = []
new_list = []

for _ in range(n):
number = int(input('Введите элемент списка: '))
num_list.append(number)

k = int(input('Сдвиг: '))
temp = k

for i in range(k):
new_list.append(num_list[-k])
k -= 1

for j in range(n - temp):
new_list.append(num_list[k])
k += 1

print('Изначальный список:', num_list)
print('Сдвинутый список:', new_list)
$*пaxah *$ 112Т
$*пaxah *$ 112Т
189
Задача из Skillbox
def get_input_parameters():
K = int(input('Сдвиг: '))
original_list = [1, 2, 3, 4, 5]
print('Изночальный список:', original_list)
return K, original_list

def display_result(shifted_list):
print('Сдвинутый список:', shifted_list)

def shift_list(shift, original_list):
original_list = original_list[- shift :] + original_list[: - shift]
return original_list

if __name__ == '__main__':
# Это условие необходимо, чтобы в рамках автотестов не произошёл
# вызов функций get_input_parameters и display_result
shift, original_list = get_input_parameters() # получаем параметры
shifted_list = shift_list(shift, original_list) # сдвигаем список.
display_result(shifted_list) # выводим результат
def shift(lst, steps):
if steps < 0:
steps = abs(steps)
for i in range(steps):
lst.append(lst.pop(0))
else:
for i in range(steps):
lst.insert(0, lst.pop())

N = int(input("Кол-во элементов: "))
start_list = []
finish_list = []

for _ in range(N):
element = input("Введите элемент списка:")
start_list.append(element)
print('Изначальный список: ', start_list)
shift_step = int(input('Сдвиг: '))

shift(start_list, shift_step)
print('Сдвинутый список: ', start_list)
Александр Скрябин finish_list = [] получается не используется
listt = []

cycle = int(input('длина списка? '))
for _ in range(1, cycle + 1):
old_list = int(input('ввдите элементы списка: '))
listt.append(old_list)
shift = int(input('сдивг: '))
print('старый список: ', listt)

lst = listt[-shift:] + listt[:-shift]
print('сдвинутый список:',lst)
amount_element = int(input("Кол-во элементов: "))
list_element = []

for _ in range(amount_element):
''''''element = input("Введите элемент списка: ")
''''''list_element.append(element)
shift = int(input("Сдвиг: "))


print()
print(list_element)
for _ in range(shift):
''''''new_list_element = []
''''''new_list_element.append(list_element[amount_element-1])
''''''for index in range(amount_element-1):
''''''''''''new_list_element.append(list_element[index])
''''''list_element = new_list_element
''''''print(list_element)
N = int(input('Сколько элементов в списке: '))
List = []
for i in range(N):
el = int(input('Введите значение элемента: '))
List.append(el)
K = int(input('Сдвиг: '))
print(List)

for x in range(K):
index = 0
save = List[index - 1]
for i in range(len(List) - 1):
List[index - 1] = List[index - 2]
index -= 1
List[0] = save
print(List)
original_list = []
amount = int(input('Введите кол-во символов в списке: '))
for _ in range(amount):
value = int(input('Введите число: '))
original_list.append(value)
shift = int(input('Введите необходимый сдвиг: '))

new_list = []
for number in range(len(original_list)):
new_list.append(original_list[number - shift])

print(new_list)
Вот что конкретно требуется

def get_input_parameters():
shift = abs(int(input('Сдвиг: ')))
original_list = []
length = int(input('Задайте количество элементов изначального списка:'))
for i in range(length):
print('Введите значение', i + 1, 'элемента', end=' ')
original_list.append(int(input()))
return shift, original_list


def display_result(shifted_list):
print('Сдвиг:', shift)
print('Изначальный список:', original_list)
print('\nСдвинутый список:', shifted_list)


def shift_list(shift, original_list):
shifted_list = []
for i in range(len(original_list)):
shifted_list.append(original_list[i - shift])
return shifted_list


if __name__ == '__main__':
# Это условие необходимо, чтобы в рамках автотестов не произошёл
# вызов функций get_input_parameters и display_result
input_data = get_input_parameters() # получаем параметры
shift = input_data[0]
original_list = input_data[1]
shifted_list = shift_list(shift, original_list) # сдвигаем список.
display_result(shifted_list) # выводим результат
Cash Money
Cash Money
112
list = [1, 4, -3, 0, 10]
shift = int(input('Сдвиг: '))

list_with_shift = list[-shift:] + list[:-shift]

print(f'Изначальный список: {list}')
print(f'Сдвинутый список: {list_with_shift}')

---------------------
Ловите =)