因此,很容易确定一个列表的子列表的长度:
list_length = [len(w) for w in data]
但是有没有一种方法可以在忽略任何空列表项的同时获得长度:''
?在
我有一个列表列表,[data]
,其中一个子列表如下所示:
['GOM COD', '60', '$2.00', '', '$120.00']
因此list_length
被确定为5
。到目前为止,我将把列表列表转换为一个列表,以便删除所有''
项,然后根据list_length
的值将其转换回列表列表。然而,在这种情况下,在删除所有''
之后,5
的list_length
值最终是不正确的,并创建了一个混乱的数据帧。在
我确实尝试用data = list(filter(None, data))
删除所有的空字符串项,但是只删除那些完全由''
组成的子列表。在
因此,我希望最终能够在忽略或排除''
s的同时确定子列表的长度,因为我必须在许多文件上运行这段代码,因此它必须足够健壮以读取正确的list_length
。在
我的要求可能吗?或者是最聪明的方法?在
谢谢。在
使用地图
或使用过滤器:
^{pr2}$或使用贴图和过滤器:
使用列表理解:
似乎您在错误的级别应用了
filter
。我个人更喜欢列表理解,而不是filter
在大多数情况下:使用过滤器:
^{pr2}$编辑
这样更有效,因为它不必构建新列表:
为了澄清评论中出现的混乱,请记住我们得到了一个列表。以下是有效输入:
上面任何带有
data
的表达式的值都是[3, 2]
,因为第一个子列表有3个非空字符串,第二个子列表有2个非空字符串。在相关问题 更多 >
编程相关推荐