使用数字和字符串打印嵌套列表中每个元素的大小

Printing the size of each element in a nested list with numbers and strings

当我尝试 运行 以下 for 循环时出现错误。

TypeError: object of type 'int' has no len()

期望的输出:1 1 3 3

这是我正在尝试的代码 运行。感谢所有能帮我解答这个问题的人!

lst = ['spam!', 1, ['Brie', 'Roquefort', 'Pol lê Veq'], [1, 2, 3]]

for index in lst:
    print(len(index))

首先,您需要检查每个项目是否是一个列表。然后,将 len 函数应用于列表项并打印出结果,否则,打印出 1.

lst = ['spam!', 1, ['Brie', 'Roquefort', 'Pol lê Veq'], [1, 2, 3]]

for i in lst:
    if isinstance(i, list):
        print(len(i))
    else:
        print(1)

问题是您无法在 python 中获取整数的字符长度,您可以将每个项目变成一个列表。

list = [['spam!'], [1], ['Brie', 'Roquefort', 'Pol lê Veq'], [1, 2, 3]]

for index in list:
    print(len(index))

或者您可以使用字符串而不是整数,并在需要时转换它。