求最大值及其下标
找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。
输入格式:
在第一行中输入给出一个正整数n(1
输出格式:
在一行中输出最大值及最大值的最小下标。
输入样例:
6 2 8 10 1 9 10
输出样例:
10 2
代码如下:
[Python3]解法一:
n = int(input()) numbers = list(map(int, input().split())) max_value = float('-inf') # 初始化最大值为负无穷 min_index = -1 # 初始化最小下标为-1 for i in range(n): if numbers[i] > max_value: max_value = numbers[i] min_index = i print(max_value, min_index)
解法二:
# 输入n的值 n = int(input()) # 输入n个整数 numbers = list(map(int, input().split())) # 找出最大值 max_value = max(numbers) # 找出最大值的最小下标 min_index = numbers.index(max_value) # 输出结果 print(max_value, min_index)
tips:
1.在Python中,
map()
函数用于对可迭代对象中的每个元素应用一个函数,返回一个新的可迭代对象,其中包含应用了函数的结果。
map()
函数的语法如下:map(function, iterable)
其中,
function
是一个函数对象,iterable
是一个可迭代对象,例如列表、元组、字符串等。map()
函数会将function
应用于iterable
中的每个元素,并返回一个包含结果的新可迭代对象。下面是一个简单的示例,展示如何使用
map()
函数将列表中的每个元素加倍:numbers = [1, 2, 3, 4, 5] doubled_numbers = list(map(lambda x: x * 2, numbers)) print(doubled_numbers)
输出结果为:
[2, 4, 6, 8, 10]
在上述示例中,
map()
函数将lambda
函数(匿名函数)应用于列表中的每个元素,将每个元素都加倍,并返回一个新的包含结果的列表。在上面的题目中,我们使用了
map()
函数来将输入的字符串数字转换为整数。具体来说,map(int, input().split())
将输入的字符串按空格分割后,将每个子字符串转换为整数,返回一个新的可迭代对象,最后使用list()
函数将其转换为列表。这样,我们就可以得到一个由整数组成的列表,方便后续的处理。2.在Python中,
index()
函数用于查找列表中某个元素第一次出现的索引值。它的语法如下:list.index(element, start, end)
其中,
list
是指定的列表,element
是要查找的元素,start
是可选参数,表示开始搜索的索引位置,默认为0,end
是可选参数,表示结束搜索的索引位置,默认为列表长度。下面是一个示例,展示如何使用
index()
函数来查找列表中某个元素的索引值:numbers = [5, 2, 8, 4, 1, 7] index = numbers.index(8) print(index)
输出结果为:
2
在上述示例中,我们通过
numbers.index(8)
查找数字8在列表numbers
中第一次出现的索引值,并将其打印输出。对于上面的题目的需求,可以使用
index()
函数来找到最大值的最小下标。以下是使用index()
函数解答题目的示例代码:n = int(input()) numbers = list(map(int, input().split())) max_value = max(numbers) # 找到最大值 min_index = numbers.index(max_value) # 找到最大值的最小下标 print(max_value, min_index)