计算清单清单的平均长度

时间:2019-04-12 14:34:17

标签: python list

我希望我可以得到列表中每个元素的平均长度

我已经尝试了以上内容:

lista=[("a,b,c"),1,1,2,(1,"n")]

for i in lista:
    a=[]
    a.append(i)
    print(len(a))

每个元素的实际结果是len = 1。我猜我无法进入列表元素...预期结果将是:3,1,1,1,2

3 个答案:

答案 0 :(得分:1)

只需尝试获取len并捕获错误(如果没有)

lista=[("a,b,c"),1,1,2,(1,"n")]

for i in lista:
    try:
        print(len(i))
    except TypeError:
        print(1)

答案 1 :(得分:0)

您可以使用iter函数来检查元素是否可迭代,如果可迭代,则获取其长度,否则追加1

lista=[("a,b,c"),1,1,2,(1,"n")]

for elem in lista:
    try:
        iter(elem)
        print(len(elem))
    except TypeError:
        print(1)

结果:

5
1
1
1
2

第一个元素是5而不是3的原因是因为lista的第一个元素是仅包含一个字符串的元组。可能是拼写错误。

答案 2 :(得分:-1)

您的问题是,您不是在检查列表的长度,而是在检查新创建的列表a [i]的长度,该列表的设计长度为一 您想要:

lista=[("a,b,c"),1,1,2,(1,"n")]

lengths=[]
for i in lista:
    if isinstance(i,int):
        lengths.append(1)
    else:
        try:
            lengths.append(len(i))
        except:
            pass
print lengths

编辑:我的先前版本确实无法正常工作