Python:列表和地图功能无法正常工作

时间:2018-12-31 17:20:09

标签: python

在处理给定数据时遇到一些麻烦。任务很简单,我要做的就是将列表中的第一个最大元素与最后一个交换。输入数据只是一个数字序列,由空格分隔。如果我使用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始终包含正确的数据,因此无法将某些文本转换为整数。

1 个答案:

答案 0 :(得分:0)

问题解决了,我忘了处理数组长度为0的情况。