第一行包含一个整数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
答案 0 :(得分:1)
您正在通过删除空格并在' '
处拆分值来创建整数值列表。获取整数列表后,您将遍历列表,然后将arr的arr的反序从a的背面(索引的负值表示具有ith索引的元素,并且从1开始,它从1开始)转换为字符串,并打印数字。
示例:
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.
答案 1 :(得分:1)
在pyton-3中
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
答案 2 :(得分:0)
让我们看一下这段代码片段
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
。
答案 3 :(得分:-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文档。
答案 4 :(得分:-1)
尝试一下!
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