你这个是查找给定序列的最长递增子序列的吧,如果number大于end-start,返回空;否则先进行range(start,end)举个例子
range(1,10):指定start=1,end=10,默认step=1,生成可迭代对象,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]
然后
返回sample(range(start,end),number)
sample(序列a,n)
功能:从序列a中随机抽取n个元素,并将n个元素以list形式返回。
def subAscendingList(lst):
'''返回最长递增子序列'''
for length in range(len(lst), 0, -1):
#按长度递减的顺序进行查找和判断
for sub in combinations(lst, length):
#判断当前选择的子序列是否为递增顺序
if list(sub) == sorted(sub):
#找到第一个就返回
return sub
def getList(start=0, end=1000, number=20):
'''生成随机序列'''
if number > end-start:
return None
return sample(range(start, end), number)
写出来执行下就知道了
这段代码是一个生成随机序列的函数getList
1、传入范围起点start 范围终点end 以及序列长度
2、如果传入的长度大于范围,比如你给的范围是50-100,却传入了number 51,那么超出了范围,就返回空值
3、调用随机函数sample,传入范围和长度,返回一个无重复的随机序列
相关文档:https://docs.python.org/zh-cn/3.7/library/random.html 参考其中random.sample部分
如有帮助请采纳🤣谢谢