Первая строка содержит целое число N (размер нашего массива). Во второй строке через пробел записано N целых чисел, описывающих элементы массива(A).
Я пробовал следующее, однако я просмотрел страницу решения. Однако я не понимаю, как работает этот код. Может кто-нибудь, пожалуйста, объясните мне это. Я новичок в этом мире кодирования.
import math
import os
import random
import re
import sys
if __name__ == '__main__':
n = int(input())
arr = [int(arr_one) for arr_one in input().strip().split(' ')]
for i in range(len(arr)):
print(str(arr[-i-1]), end = " ")
ввод 1234 выход 4 3 2 1



Приведенный выше код можно переписать, как показано ниже, с большей читабельностью.
if __name__ == '__main__':
n = int(input())
inp = input("Enter the numbers seperated by spaces:::")
inp = inp.strip() # To remove the leading and trailing spaces
array = []
for item in inp.split(' '): # Splitting the input with space and iterating over each element
array.append(int(item)) # converting the element into integer and appending it to the list
print(array[::-1]) # here -1 says to display the items in the reverse order. Look into list comprehension for more details
Дополнительные сведения о нарезке списка см. в документации по Python.
ОП запрашивает объяснение существующего кода (который, вероятно, намеренно избегает нарезки), а не «лучший способ сделать это». Этот ответ как бы упускает суть.
Попробуй это!
if __name__ == '__main__':
n = int(input()) # input as int from stream
arr = [int(arr_one) for arr_one in input().strip().split(' ')]
"""
1. asking for input from user
2. strip() function removes leading and trailing characters.
3. split(' ') function split your input on space into list of characters
4. arr_one variable contains yours splited character and your iterating over it using for loop
5. int(arr_one) converts it into integer and [] is nothing just storing everything into another list.
6. In last you are assigning new list to arr variable
"""
for i in reversed(arr): # loop over list in reverse order with built in fucntion
print(i, end = " ") # printing whatever comes in i
Это должно работать так:
3 # your n
1 2 3 # your input
3 2 1 # output
ОП запрашивает объяснение существующего кода, а не улучшенного кода.
Вы создаете список целочисленных значений, удаляя пробелы и разделяя значения на ' '. После получения списка целых чисел вы выполняете итерацию по списку и преобразуете i-й элемент сзади (отрицательное значение индекса обозначает элемент с i-м индексом справа, и он основан на 1) arr обратно в строку и печатает число.
Пример:
arr = [1,2,3,4]
print(arr[1]) #prints 2 on the console, i.e 2nd element from the left.
print(arr[-1]) #prints 4 on the console, i.e 1st element from the right.
Если это поможет, вы можете проголосовать за него, чтобы он был полезен и другим.
Возьмем этот фрагмент кода
n = int(input())
arr = [int(arr_one) for arr_one in input().strip().split(' ')]
for i in range(len(arr)):
print(str(arr[-i-1]), end = " ")
Метод input() будет принимать пользовательский ввод с клавиатуры. int(input()) преобразует ввод в int, если ввод имеет строковый формат. например "4" вместо 4. Входное значение сохраняется в переменной n.
Ввод массива будет таким: «1 2 3 4». Итак, нам нужно разделить строку пробелом.
Метод strip() возвращает копию строки с удаленными начальными и конечными символами.
Метод split() возвращает список строк после разбиения данной строки на указанный разделитель. Здесь разделителем является пробел. Итак, split(' ')
input().strip().split(' ') примет на вход «1 2 3 4», а на выходе будет "1" "2" "3" "4"..
Теперь нам нужно взять каждый элемент после разделения. А затем скрыть в int и сохранить в массив.
arr = [int(arr_one) for arr_one in input().strip().split(' ')]
arr_one — это переменная, эта переменная хранит каждый элемент после разделения. Для каждого элемента мы преобразовали его в int, а затем сохранили в массив arr.
В python индекс массива начинается с 0. Если мы хотим получить доступ к последнему индексу в массиве, индекс будет начинаться с -1, -2, -3 и т. д.
for i in range(len(arr)): Цикл for будет выполнять итерацию от индекса 0 до длины массива. в этом примере размер равен 4.
печать элементов массива из индекса -1. а аргумент end используется для завершения оператора print заданным символом, здесь конечный символ — " ". Таким образом, на выходе будет 4 3 2 1.
Большое спасибо за время и усилия в объяснении!
В Python3:
if __name__ == '__main__':
n = int(input())
arr = list(map(int, input().rstrip().split()))
print(" ".join(str(x) for x in arr[::-1]))
Вход:
1 4 3 2
Вывод:
2 3 4 1
ввод не разделен пробелом. Это правильный ввод?