在处理给定数据时遇到一些麻烦。任务很简单,我要做的就是将列表中的第一个最大元素与最后一个交换。输入数据只是一个数字序列,由空格分隔。如果我使用map将每个数字从str转换为int,它将无法通过测试,但是错误代码不会显示出来,因此我不知道如何解决此问题。
代码使用Python 3.6.3编写。我试图通过多种方式将str数字转换为int,但是每次尝试均未通过第三次测试,但我完全不进行数字转换。
def max_elem_to_last(array, start_index, end_index):
maximum = max(array[start_index:end_index])
index_max = array.index(maximum)
array[end_index - 1], array[index_max] = array[index_max], array[end_index - 1]
with open('input.txt', 'r') as file:
data = file.readlines()
length = int(data[0].replace('\n', '')[0])
dataIO = data[1].replace('\n', '').split()
a = list(map(int, dataIO))
max_elem_to_last(a, 0, length)
with open('output.txt', 'w') as file:
for elem in a:
file.write(str(elem) + ' ')
给定数据的示例:
5
1 2 5 4 3
答案:
1 2 3 4 5
此外,input.txt
始终包含正确的数据,因此无法将某些文本转换为整数。
答案 0 :(得分:0)
问题解决了,我忘了处理数组长度为0的情况。