Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当试图找到从序列中的一个元素到索引更高的元素的最大增量时,如何对空列表执行特殊情况?_Python - Fatal编程技术网

Python 当试图找到从序列中的一个元素到索引更高的元素的最大增量时,如何对空列表执行特殊情况?

Python 当试图找到从序列中的一个元素到索引更高的元素的最大增量时,如何对空列表执行特殊情况?,python,Python,正如问题所暗示的,我正在尝试创建一个函数,该函数返回列表中从一个索引到更高索引的数字之间的最大差异 e、 g.[1,2,3,2]返回2.0 e、 g.[3,2,1,1]返回0.0,因为它不会从左向右增加 我的代码目前是 def最大增量(seq): 最小值=序号[0] 最大值=0 对于范围内的i(len(seq)): 如果(序号[i]最大值): 最大值=顺序[i]-最小值 elif len(seq)==0: 返回0 返回浮动(最大) 它适用于所有情况,除非我给出空列表。我原以为我的上一个elif

正如问题所暗示的,我正在尝试创建一个函数,该函数返回列表中从一个索引到更高索引的数字之间的最大差异

e、 g.
[1,2,3,2]
返回2.0

e、 g.
[3,2,1,1]
返回0.0,因为它不会从左向右增加

我的代码目前是

def最大增量(seq):
最小值=序号[0]
最大值=0
对于范围内的i(len(seq)):
如果(序号[i]<最小值):
最小值=序号[i]
elif(顺序[i]-最小值>最大值):
最大值=顺序[i]-最小值
elif len(seq)==0:
返回0
返回浮动(最大)

它适用于所有情况,除非我给出空列表。我原以为我的上一个
elif
会覆盖空列表,但显然不是。

这就是@EdvardM试图告诉你的(我不知道他为什么不回答自己)


它不能处理空列表,因为函数中的第一条语句访问
seq
中的第一项。还要注意的是,您可以在seq中对elem说
,而不需要使用我看到的指示符。我如何修改语句,使其也适用于空列表?另外,谢谢,我用
elem
:)替换了
I
)@edvard您可以提前返回,例如
如果不是seq:return None
。还请注意,有时使用
math.inf
-math.inf
效果更好,无需两个单独的案例(一个代表无,一个代表实际值)
def largest_increase(seq):
    # check for empty seq list right away:
    if len(seq) == 0: # or more simply (and Pythonic): if not seq:
        return 0.0
    minimum = seq[0]
    maximum = 0
    for elem in seq:
        if (elem < minimum):
            minimum = elem
        elif (elem - minimum > maximum):
            maximum = elem - minimum
    return float(maximum)

print(largest_increase([1,2,3,2]))
print(largest_increase([3,2,1,1]))
print(largest_increase([]))
2.0
0.0
0.0