用条带arr [::-1]

时间:2019-04-15 22:21:37

标签: python python-3.x

我想反向打印字符串中的数据。 以下代码段仅适用于一位数字:即它将19翻转到91 ...

def reverse_string(arr):
        # Reverse a string quickly
        return arr[::-1]


if __name__ == '__main__':
    n = int(input())
    # str = return string for object input
    # " ".join() = drop [] & "" from output
    arr = str(" ".join(input().split(" ")))

    print((reverse_string(arr)))

将arr [::-1]用于输入的最干净的方法是什么,例如: 4 34 54 110 9

任务:     给定一个由N个整数组成的数组A         以相反的顺序打印A的元素             单行,以空格分隔的数字

输入:     N =数组大小     N =描述的以空格分隔的整数

输出格式:     以相反的顺序打印数组A的元素         用空格分隔的数字

示例输入:     5     1 43​​ 3 200 2

示例输出:     2 200 3 43 1

3 个答案:

答案 0 :(得分:1)

1。输出:数字(整数)

借助列表理解,您可以将整数形式转换为字符串分割后的数组的所有内容:

arr = "5 1 43 3 200 2"
arr = [int(x) for x in arr.split(" ")[::-1]]

输出(整数列表):

>>> arr
[2, 200, 3, 43, 1, 5]

2。输出:字符串

如果您希望将其作为字符串,只需将其拆分,反转并连接回字符串

arr = "5 1 43 3 200 2"
arr = arr.split(" ")[::-1]
arr = " ".join(arr)

输出:

>>> arr
'2 200 3 43 1 5'

答案 1 :(得分:0)

您不应将输入转换为int。我假设您将只输入用空格分隔的整数,因此以下代码将为您提供帮助:

n = input()
arr = n.split()
print(*reverse_string(arr))

请注意,您可以内联变量n,因此可以使用arr = input().split()。这样可以节省一行代码。

答案 2 :(得分:0)

您的代码是正确的主意,但是您应该在将列表反向后将其重新连接到字符串上。

更改:

arr = str(" ".join(input().split(" ")))
print((reverse_string(arr)))

收件人:

arr = input().split(" ")
print(" ".join(reverse_string(arr)))