查找由list和int组成的子列表的列表长度

时间:2018-10-09 04:17:58

标签: python compiler-errors variable-length

按标题,如何查找由list和int组成的子列表的列表长度。 例如,给出一个列表

ListNo=[[6,2,5],[3,10],4,1]

它应该返回LengthSubList 3,2,1,1。

我输入以下代码,

LengthSubList=[len(x) for x in ListNo]

但是,编译器给出以下错误

object of type 'int' has no len()

我可以知道我做错了什么吗

预先感谢

2 个答案:

答案 0 :(得分:1)

在进行len()之前检查它是否为列表:

ListNo = [[6,2,5],[3,10],4,1]

print([len(x) if isinstance(x, list) else 1 for x in ListNo])
# [3, 2, 1, 1]

您错了,您不能做len(4)len(1),仅因为它会返回TypeError-类型'int'的对象没有len()。

答案 1 :(得分:1)

您的代码将在您的列表理解中调用len(4)len(1),这会引发自解释错误。试试这个:

LengthSubList=[len(x) if type(x) == list else 1 for x in ListNo]