温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

多层嵌套可迭代列表的剥皮函数

发布时间:2020-06-23 09:41:49 来源:网络 阅读:432 作者:牛奶i豆浆 栏目:编程语言

python中很多时候可能会遇到多层嵌套可迭代列表如下:

 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
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI