【发布时间】:2017-08-10 01:23:18
【问题描述】:
我需要找到第一个元素大于最后一个元素的子列表的最大长度。
如果原始列表的第一个元素大于最后一个元素,那么我只返回列表的长度。如果不是,我必须找到具有最大长度且第一个元素大于最后一个元素的列表子列表。
我编写了查找所有子列表和检查条件的代码。我的代码需要更多时间才能将较大的列表转换为子列表。我需要更有效地更改此代码。我认为获得子列表组合的方法需要更多时间。任何人都可以为我提供有效的方法吗?
from itertools import combinations
def combos_with_exclusion(lst,length):
d=0
for combo in combinations((e for e in lst),length):
#yield list(combo)
#print (list(combo))
sublist=list(combo)
#print(sublist[0])
le=len(sublist)
if(sublist[0]>sublist[le-1]):
d=len(sublist)
if(d!=0):
break
return d
【问题讨论】:
标签: python arrays python-2.7 list python-3.x