多层嵌套可迭代列表的剥皮函数-创新互联
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
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站标题:多层嵌套可迭代列表的剥皮函数-创新互联
URL网址:http://lswzjz.com/article/ddjdgj.html