a = ['天然气', '垃圾分类'] b = [['稀土永磁'], ['风电', '稀土永磁']],像这样的用 len 函数也判断不出来。
1
arrow8899 Sep 4, 2019 len(list(filter(lambda x: isinstance(x, list), b)))
|
2
gimp Sep 4, 2019 len([x for x in b if isinstance(x, list)])
|
3
lihongjie0209 Sep 4, 2019
for 循环一个一个判断啊
|
4
xpresslink Sep 4, 2019 常规来说统计多维嵌套列表中的个数应该用 递归拉平列表那个程序(网上很多自己百度)中加个计数器实现。
但是也有比较 hacker 一些的方法比如: >>> a = ['天然气', '垃圾分类'];b = [['稀土永磁'], ['风电', '稀土永磁']] >>> str(a).count('[') 1 >>> str(b).count('[') 3 >>> |
5
Hopetree Sep 4, 2019
|
6
iamdaguduizhang Sep 5, 2019
@xpresslink Good idea !!
|
8
sladesha Sep 5, 2019
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)) |
10
songdg OP @xpresslink 神操作,谢谢。
|