以相反的顺序打印数组元素

时间:2019-02-01 04:52:56

标签: arrays python-3.x string

第一行包含一个整数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

5 个答案:

答案 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