我应该编写一个合同列表的程序。例如:
[1, 3, 4, 5, 1, 8, 6,]
必须缩小为如下所示的列表:
[1, 5, 1, 8, 6, 6]
我不知道如何做到这一点,并希望你们中的任何人都可以帮助我。
我给出了一个类似于l1 = [1,3,9,1,2,7,8]的列表,我应该将列表合同到一个新列表中,该列表包含旧列表noncecending细分肢体。它应该适用于给定的任何列表。
答案 0 :(得分:0)
让我试着理解这个问题:
我给出了一个看起来像这样的列表l1 = [1,3,9,1,2,7,8]和im 应该通过获取第一个数字然后下一个数字来收缩列表 bigest和之后的最小,然后再次最大。这是 学校作业,我不知道如何做到这一点。英语 不是我的第一语言,这很难解释 作业:/
我认为“最大”和“最小”是指局部最大值和最小值。因此,如果i
和l[i-1] < l[i]
,则索引l[i] > l[i+1]
处的数字“最大”。相反,“最小”。所以基本上你正在寻找函数N -> N
的极值。
如果这是你想要的,这应该有所帮助(考虑到起点和终点总是极值):
#! /usr/bin/python3.2
def sign(x): return 0 if not x else x // abs(x)
def extrema (l):
return [l[0]] + [e for i, e in enumerate(l[:-1]) if i and sign(e-l[i-1])==sign(e-l[i+1])] + [l[-1]]
l1 = [1, 3, 9, 1, 2, 7, 8]
print (extrema (l1))