首页 > 解决方案 > 打印列表范围内的最大和最大索引

问题描述

在下面的代码中,它随机选择list_. 停止必须大于开始,并且我希望程序输出的最大数字list_[start:stop]以及该数字所在的顺序。我在打印list_.

#15 numbers in the list
list_ = [1,3,5,6,7,2,3,6,4,3,5,7,8,11,10]
stop= random.randint(1, len(list_))
start = random.randint(0, stop)

maxnum = max(list_[start:stop])
max_index = list_.index(maxnum)
print("maximum number in range: ", maxnum, "index of max number: ", max_index)

标签: pythonlistrandomindexingrange

解决方案


问题是您在list_. 该方法返回它找到的第一个.index实例的索引。如果和,最大值在 index 处。但是返回的索引是因为您在整个列表中找到前 3 个。start=5stop=7361

您可以通过index在子列表上使用,然后添加start索引来解决此问题。尽管如果您的子列表中有重复的最大值,它将再次返回第一个索引。

max_index = list_[start:stop].index(maxnum) + start

推荐阅读