【发布时间】:2020-01-29 14:42:37
【问题描述】:
我遇到了这个功能:
def count_list(l):
count = 0
for e in l:
if isinstance(e, list):
count = count + 1 + count_list(e)
return count
特别是for e in 1 和isinstance(e, list) 看不懂,不知道有没有专业人士可以解释一下?刚开始学习功能,list、in和isinstance
【问题讨论】:
-
我不是专业人士,但这绝对是较低的
L而不是 1。 -
是的,你是对的。我只知道这个函数假设计算一个嵌套列表并告诉一个列表中有多少个嵌套列表。但我无法理解这段代码在逻辑上的含义。
-
这是一个很好的学习时刻。我建议你在几个例子上运行它,并在函数的重要部分添加一些
prints 以检查发生了什么。也就是说 - 这个函数是递归的,这可能是一个有点高级的话题,直到你掌握了其余的基本知识(但只要你了解函数,你就可以理解递归) -
在the official Python Tutorial 中阅读此内容并自己运行其中的示例。
-
嘿,感谢@Adam.Er8 和@usr2564301 的建议。我做了一些打印并快速阅读,并且可以猜测该函数意味着....对于列表 (l) 中的每个元素 (e),如果 (e) 匹配/在列表 (l) 中找到,则 + 1 计数直到找不到任何东西,然后退出该函数。我有一个问题,所以我可以将“l”或“L”表示为 List 的简写形式吗?至于(e),似乎我可以随意命名它并且仍然可以正常运行。但是对于 (l),我无法更改为任何字母,否则会显示错误。
标签: python-3.x list function isinstance