python中很多时候可能会遇到多层嵌套可迭代列表如下:
成都创新互联主要从事成都网站设计、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务延庆,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
list1 = [11, 22, [33, 44, [55, 66]]]
list2 = [11, 22, [33, 44]]
其中我们想要的结果只是一个所有的结果列表而已.此时就需要一个剥皮函数,把嵌套的元素全部剥离出来,放入一个列表中(递归实现).
实现函数如下:
def f(x, ret=None):
# 把上一次的结果传递过来
if not ret:
ret = []
for i in x:
if isinstance(i, list):
# 如果i为列表,则返回继续处理,且把现在的处理结果传递回去
f(i, ret)
else:
ret.append(i)
# 最终返回所有的元素
return ret
第二种方法:
# 第二种方法
def f2(x):
ret = []
for m in x:
if isinstance(m, list):
# 进行递归剥皮将列表挨个递归添加到ret列表中
# 因为f2函数最终返回的是一个列表,所以不管多少层f2(m)将始终是一个列表
# 循环将元素加入ret列表中
for n in f2(m):
ret.append(n)
else:
ret.append(m)
return ret
网页名称:多层嵌套可迭代列表的剥皮函数
文章URL:https://www.cdcxhl.com/article44/pgpeee.html
成都网站建设公司_创新互联,为您提供品牌网站建设、手机网站建设、App开发、用户体验、、网站内链
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联