微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

打印出列表中某个范围内的最大值/最小值

如何解决打印出列表中某个范围内的最大值/最小值

我想打印出列表中多个值之间的最大数量。我还想获得列表中最大数量的顺序。例如在 list_ = [1,3,5,6,7,2,4,8,11,10] 内。 maximum number is 11 at the 13th order in the list。如果最大值发生不止一次,我将包含索引的第一个顺序。

list_ = [1,10]
max = max(list[:len(list_)])

解决方法

试试下面的代码:

max_num = max(list_)
max_num_index = list_.index(max_num)

print("The maximum number is {} at the {} order in the list".format(max_num,max_num_index))

,

我会这样做:

list_ = [1,3,5,6,7,2,4,8,11,10,11]

def func(lst):
    maxnum = max(lst)

    indices = [i for i,x in enumerate(lst) if x == maxnum]

    print(maxnum,indices)


func(list_[3:6])
# prints: 7 [1]; 7 - maxnum,[1] - position in [3:6] list

其中 maxnum 是最大数量,indicesmaxnum 的索引(如果有更多)。

,
l = [1,10]
m=max(l)
print(f"max number is {m} at index {l.index(m,0)}")
,

您希望能够在列表的子列表中搜索最大值并报告它相对于原始列表的位置。此函数执行此操作并返回 (max_value,position) 元组。参数 startstop 应被视为切片的上限和下限:

def max_in_range(l,start=0,stop=None):
    if stop is None:
        stop = len(l)

    m = max(l[start:stop])
    return (m,l.index(m,start,stop))


>>> l = [1,10]
>>> max_in_range(l)
(11,13)
>>> max_in_range(l,14)        # start from index 14
(10,14)
>>> max_in_range(l,stop=4)    # check from beginning to position 3
(6,3)
>>> max_in_range(l,4)
(6,5)
(7,4)
>>> max_in_range(l,6)
(7,-2)     # can use negative indices
(8,12)

您可能希望在代码中处理一些边缘情况:

>>> max_in_range(l,3)
Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
  File "<stdin>",line 4,in max_in_range
ValueError: max() arg is an empty sequence

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。