统计列表的平均长度

2024-04-20 00:33:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我试过以上方法:

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,2


Tags: 方法in元素列表forlenprintappend
3条回答

你的问题是你没有检查你的列表的长度,而是检查新创建的列表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

编辑:我以前的版本确实不起作用

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

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

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

可以使用^{}函数检查元素是否可iterable,如果是,则获取其长度,否则追加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的第一个元素是一个只包含一个字符串的元组。可能是打字错误。你知道吗

相关问题 更多 >