如何返回列表切片的最大元素

2 投票
4 回答
14888 浏览
提问于 2025-04-16 05:13

我正在尽量简化这个函数,应该怎么做呢?

def eleMax(items, start=0, end=None):
    if end is None:
        end = len(items)
    return max(items[start:end])

我想到了

def eleMax(items, start=0, end=-1):
    return max(items[start:end])

但是最后一个元素从列表中被删除了。

4 个回答

2

只需要用 max(items) 就可以了。

在Python中,范围是“半开”的。当你用 [start:end] 这种方式切片一个列表时,起始点是包含在内的,而结束点是不包括的。

2

当然可以!请看下面的内容:

在编程中,有时候我们需要让程序做一些特定的事情,比如处理数据、显示信息或者与用户互动。为了实现这些功能,我们会使用一些代码块,这些代码块就像是程序的“指令”,告诉计算机该怎么做。

例如,假设我们想让程序显示一条消息,我们可能会写一些代码来实现这个目标。代码块就像是一个个小工具,帮助我们完成不同的任务。

如果你在学习编程,记住每个代码块都有它的用途,理解这些用途会让你更容易掌握编程的技巧。

希望这些解释能帮助你更好地理解编程的基本概念!

def eleMax(items, start=None, end=None):
    return max(items[slice(start, end)])
4

你可以直接删掉这两行:

if end is None:
    end = len(items)

这样函数的运行效果是完全一样的:

>>> a=[5,4,3,2,1]
>>> def eleMax(items, start=0, end=None):
...     return max(items[start:end])
...
>>> eleMax(a,2)   # a[2:] == [3,2,1]
3

撰写回答