所以我被传递了一串整数。第一个表示我正在通过的整数,其余的是正在通过的整数。
传递的字符串i的示例:4 1 2 3 4 预期产出:4 3 2 1
这是我写的
import sys
n = int(raw_input().strip())
arr = map(int,raw_input().strip().split(' '))
arr.reverse()
print(arr)
如果我键入4然后输入,然后输入1 2 3 4,它会起作用,但如果我键入4 1 2 3 4然后按回车键我输入此错误:
Traceback (most recent call last):
*File name removed by me* line 4, in <module>
n = int(raw_input().strip())
ValueError: invalid literal for int() with base 10: '4 1 2 3 4'
我理解错误...它期望n = int(raw_input(。。strip())的单个基数为10的数字不是由空格分隔的数字串。我试图改变我的代码几乎完全否定了第一个数字......它甚至没有必要我不会想到蟒蛇去。有人可以帮忙吗?我觉得我只是一个小小的调整。
答案 0 :(得分:1)
我试图改变我的代码,几乎完全否定了第一个数字......它甚至没有必要我不认为就python而言。
你是对的,你可以将列表从第二个元素切割到最后一个元素,忽略第一个元素。
arr = map(int,raw_input().strip().split(' ')[1:])
答案 1 :(得分:0)
您也可以使用下面的列表和循环:
string = input("Enter a string: ")
values = string.split(" ")
reverse = list()
for i in range(len(values)-1, 0, -1):
reverse.append(values[i])
for item in reverse:
print (item,end=" ")
如下工作:
>>>
RESTART: C:/Python 3.5/test.py
Enter a string: 3 2 3 5
5 3 2
>>>
由于程序中不需要n
,您还可以修改程序并删除错误行,如下所示:
import sys
arr = map(int,raw_input().strip().split(' '))
arr.reverse()
arr = arr[:-1]
print(arr)
其输出:
>>> ================================ RESTART ================================
>>>
4 0 1 2 3
[3, 2, 1, 0]
>>>