list_new=[] list_all=[] testlist=[2,1,1,1,1,2,2,2,2,3,3,4,5,4,1,1] def findMaxStr(testlist): if len(testlist)>1: #列表长度大于1的话判断前两位是否相同, 相同的话保存第一位 if testlist[0]==testlist[1]: list_new.append(testlist[0]) else: #不同的话判断中间列表是否大于0,大于0说明之前比较过,且是相等的,遍把新列表的第一位也放进临时表 if len(list_new)>0: list_new.append(testlist[0]) list_all.append(list_new.copy()) #不能直接吧list append到其他list中,如果list重新赋值,之前append的也会改变,必须用copy print(list_new) print(list_all) list_new.clear() #清空临时表,为下次你比较、存值做准备 testlist.pop(0) #判断后去掉首位,重新执行函数 findMaxStr(testlist) elif len(testlist)==1: #对列表长度为1的时候特殊处理,判断列表中的元素 和复制的最后一个是否相同 if list_new[-1]==testlist[0]: list_new.append(testlist[0]) list_all.append(list_new.copy()) findMaxStr(testlist) print(list_all)