pythonlist可以嵌套吗
python中的列表是可以嵌套的。将嵌套的list遍历并输出是很常见的需求。以下通过两种方法达到目的
defnested_list(list_raw,result):
foriteminlist_raw:
ifisinstance(item,list):
nested_list(item,result)
else:
result.append(item)
returnresult
defflatten_list(nested):
ifisinstance(nested,list):
forsublistinnested:
foriteminflatten_list(sublist):
yielditem
else:
yieldnested
defmain():
list_raw=["a",["b","c",["d"]]]
result=[]
print"nested_listis:",nested_list(list_raw,result)
print"flatten_listis:",list(flatten_list(list_raw))
main()
让代码run起来,输出为:
nested_listis:['a','b','c','d']
flatten_listis:['a','b','c','d']
nested_list方法采用递归的方式,如果item是list类型,继续递归调用自身。如果不是,将item加入结果列表中即可。
flatten_list方法则是采用生成器的方式,本质上也是递归的思路。
2.两层嵌套list去重
list里面套了一层list,需要去重,并在生成一个去重的list。请看代码:
defdup_remove_set(list_raw):
result=set()
forsublistinlist_raw:
item=set(sublist)
result=result.union(item)
returnlist(result)
defmain():
list_dup=[[1,2,3],[1,2,4,5],[5,6,7]]
printdup_remove_set(list_dup)
让代码run起来:
[1,2,3,4,5,6,7]
基本思路:将每一个子list转为set,然后求并集,即可。
3.多重嵌套去重
defdup_remove(list_raw,result):
foriteminlist_raw:
ifisinstance(item,list):
dup_remove(item,result)
else:
result.add(item)
returnlist(result)
defmain():
list_raw=["a",["b","c",["d","a","b"]]]
result=set()
print"dup_removeis:",dup_remove(list_raw,result)
让代码run起来:
dup_removeis:['a','c','b','d']
基本思路与之前遍历嵌套list的思路差不多,唯一的区别就是之前result是一个list,而要去重的话用result是一个set,保证最后的结果为去重的结果。
以上内容为大家介绍了python培训之list可以嵌套吗,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

相关推荐HOT
更多>>
python装饰器管理函数和类的注意点
python装饰器管理函数和类的注意点本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、注意点(1)用装饰器修饰的函数或类主要应用场...详情>>
2023-11-07 21:15:48
python输入数字变成月份
python输入数字变成月份1、思路说明可计算给定区间的时间差,即两者之间共包含几个月。然后由第一个月(开始时间)逐渐累积,最后得到给定时间区...详情>>
2023-11-07 18:13:40
pythonGevent的使用
1、可以通过gevent轻松实现并发同步或异步编程。gevent中使用的主要模式是Greenlet,它是以C扩展模块的形式访问Python的轻量级协程。2、Greenle...详情>>
2023-11-07 17:51:06
python怎么生成xml文件
用python内置的xml.dom可以对xml文件进行解析处理。什么是xml?XML指可扩展标记语言(EXtensibleMarkupLanguage)XML是一种标记语言,很类似HTMLXM...详情>>
2023-11-07 16:53:54热门推荐
技术干货






