请教如何判断一个列表中有多少个列表

2019-09-04 10:23:50 +08:00
 songdg
a = ['天然气', '垃圾分类'] b = [['稀土永磁'], ['风电', '稀土永磁']],像这样的用 len 函数也判断不出来。
1985 次点击
所在节点    Python
10 条回复
arrow8899
2019-09-04 10:42:13 +08:00
len(list(filter(lambda x: isinstance(x, list), b)))
gimp
2019-09-04 10:45:14 +08:00
len([x for x in b if isinstance(x, list)])
lihongjie0209
2019-09-04 15:09:57 +08:00
for 循环一个一个判断啊
xpresslink
2019-09-04 16:27:14 +08:00
常规来说统计多维嵌套列表中的个数应该用 递归拉平列表那个程序(网上很多自己百度)中加个计数器实现。
但是也有比较 hacker 一些的方法比如:
>>> a = ['天然气', '垃圾分类'];b = [['稀土永磁'], ['风电', '稀土永磁']]
>>> str(a).count('[')
1
>>> str(b).count('[')
3
>>>
Hopetree
2019-09-04 17:03:25 +08:00
@xpresslink 你是真的秀,哈哈哈哈

想起以前初中做奥数题,有的数学选择题让计算三角形的角度,结果拿尺子给量出来了,而且那就是答案
iamdaguduizhang
2019-09-05 10:40:46 +08:00
@xpresslink Good idea !!
songdg
2019-09-05 13:17:06 +08:00
@arrow8899 谢谢帮助。
sladesha
2019-09-05 13:51:17 +08:00
def test(l):
ans = 0
def getListNumber(l):
nonlocal ans
for item in l:
if isinstance(item, list):
ans += 1
getListNumber(item)
return ans
return getListNumber(l)

if __name__ == '__main__':
List = [[1, 2, [3, [2], [1, 2]]]]
print(test(List))
songdg
2019-09-05 13:55:47 +08:00
@gimp 谢谢,代码更短。
songdg
2019-09-05 13:56:35 +08:00
@xpresslink 神操作,谢谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597758

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX