python 列表操作 自定义函数算法求助
时间:2011-04-15
来源:互联网
想要达到的效果描述如下:
mylist = ['E','F','B','C','D','H','I','J','K']
能否定义一个函数,以列表为参数,返回一个列表结果类似于 ['EF','BCD','HIJK']
规则就是 将原列表中 连续且递增的几个元素合并
def myfuc(mylist):
newlist = []
......
return newlist
算法想了很久,还是无解,大家能否帮忙研究下?
mylist = ['E','F','B','C','D','H','I','J','K']
能否定义一个函数,以列表为参数,返回一个列表结果类似于 ['EF','BCD','HIJK']
规则就是 将原列表中 连续且递增的几个元素合并
def myfuc(mylist):
newlist = []
......
return newlist
算法想了很久,还是无解,大家能否帮忙研究下?
作者: playboysen 发布时间: 2011-04-15
本帖最后由 a515200 于 2011-04-16 02:16 编辑
既然是递增,那么就从一开始,同时也要算到递增n回以后元素不够的情况,也合并
如 lst = ['1','2','2','3','3','3','4','4','4','4','5','5','5','5','5','6','6','6']
可以这样
复制代码
递归的话,装b一点的就是
def root(lst,lst1=[],j=0,i=1):
return lst1 if j<len(lst) else root(lst,lst1.append( ''.join(lst[j:j+i]) ),j=j+i,i=i+1)
这个没试过,直接敲的,可以化成易看的形式,不过手痒了没办法
其中算法复杂数依赖于n(列表的长度)的增长, (j,i,j+i,i+1...n-1)<n 算法复杂度为(O(j)) j同时也是一个计数器
既然是递增,那么就从一开始,同时也要算到递增n回以后元素不够的情况,也合并
如 lst = ['1','2','2','3','3','3','4','4','4','4','5','5','5','5','5','6','6','6']
可以这样
- def root(lst,lst1=[],j=0,i=1):
- while j<len(lst):
- lst1.append( ''.join(lst[j:j+i]) )
- j+=i; i+=1
- return lst1
def root(lst,lst1=[],j=0,i=1):
return lst1 if j<len(lst) else root(lst,lst1.append( ''.join(lst[j:j+i]) ),j=j+i,i=i+1)
这个没试过,直接敲的,可以化成易看的形式,不过手痒了没办法
其中算法复杂数依赖于n(列表的长度)的增长, (j,i,j+i,i+1...n-1)<n 算法复杂度为(O(j)) j同时也是一个计数器
作者: a515200 发布时间: 2011-04-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28