[Python]找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:在第一行中输入给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行中输出最大值及最

求最大值及其下标

找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。

输入格式:

在第一行中输入给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出最大值及最大值的最小下标。

输入样例:

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)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值