Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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_Python 3.x_List_Sequence - Fatal编程技术网

Python程序-在给定的数字列表中查找最大序列的程序

Python程序-在给定的数字列表中查找最大序列的程序,python,python-3.x,list,sequence,Python,Python 3.x,List,Sequence,我需要设计一个python程序,它输出给定数字列表中的最大序列 比如说, INPUT = [1,2,3,2,4,5,6,7,8,1,0,4,5,6] 预期结果: [4, 5, 6, 7, 8] 有人能帮我翻译一下代码吗?你可以 from itertools import groupby from operator import itemgetter new_l = [] for k, g in groupby(enumerate(data), lambda ix : ix[0] - ix[

我需要设计一个python程序,它输出给定数字列表中的最大序列

比如说,

INPUT = [1,2,3,2,4,5,6,7,8,1,0,4,5,6]
预期结果:

[4, 5, 6, 7, 8]
有人能帮我翻译一下代码吗?

你可以

from itertools import groupby
from operator import itemgetter

new_l = []
for k, g in groupby(enumerate(data), lambda ix : ix[0] - ix[1]):
    new_l.append(list(map(itemgetter(1), g)))

print(max(new_l, key=lambda x: len(x)))
输出:

[4, 5, 6, 7, 8]

一种不使用内置python模块且代码复杂度为O(n)的方法

可以折叠成一个相对较短的内衬

$ python
Python 3.7.7 (default, May  7 2020, 21:25:33) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from itertools import groupby as g
>>> d, e, l, λ, m = [1,2,3,2,4,5,6,7,8,1,0,4,5,6], enumerate, len, list, max
>>> [i[1]for i in m((λ(s)for k,s in g(e(d),lambda j:j[0]-j[1])),key=lambda j:l(j))]
[4, 5, 6, 7, 8]
>>> 

您好@Sociopath,您能帮我编写这个问题的代码吗?谢谢@Sociopath,代码运行成功并按预期输出。@SNS当您的助教看到这个非常好的代码时,他们会高兴地跳到他们的座位上!当然,你的方法是明智的…+1
$ python
Python 3.7.7 (default, May  7 2020, 21:25:33) 
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from itertools import groupby as g
>>> d, e, l, λ, m = [1,2,3,2,4,5,6,7,8,1,0,4,5,6], enumerate, len, list, max
>>> [i[1]for i in m((λ(s)for k,s in g(e(d),lambda j:j[0]-j[1])),key=lambda j:l(j))]
[4, 5, 6, 7, 8]
>>>