2024-04-20 00:33:00 发布
网友
我希望我能得到这个列表中每个元素的平均长度
我试过以上方法:
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
你的问题是你没有检查你的列表的长度,而是检查新创建的列表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:
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的第一个元素是一个只包含一个字符串的元组。可能是打字错误。你知道吗
5
3
lista
你的问题是你没有检查你的列表的长度,而是检查新创建的列表a[i]的长度 你想要:
编辑:我以前的版本确实不起作用
只需尝试检索len并捕获错误(如果没有):
可以使用^{} 函数检查元素是否可iterable,如果是,则获取其长度,否则追加
1
:结果:
第一个元素是
5
而不是3
的原因是lista
的第一个元素是一个只包含一个字符串的元组。可能是打字错误。你知道吗相关问题 更多 >
编程相关推荐