按标题,如何查找由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()
我可以知道我做错了什么吗
预先感谢
答案 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]