python 使用解析获取满足某些条件的列表元素

yv5phkfx  于 2023-01-24  发布在  Python
关注(0)|答案(1)|浏览(152)

我列了一个清单:

foolist = ['foo   bar', 'foo', 'bar' 'foo bar']

我想知道这个列表中foo的个数,不使用正则表达式。有没有比下面更简单的方法,使用一行?

print(len([i for i in [ 'foo' in line for line in foolist ] if i == True]))

上面的内容很有趣,但它也让我感到像嵌套的三元运算符那样毛骨悚然。

qoefvg9y

qoefvg9y1#

这是一个短一点:使用mapfoolist转换为1和0 '的列表,然后sum将它们向上:

sum(map(lambda x: 1 if 'foo' in x else 0, foolist))

更新:或更短:

len(filter(lambda x: 'foo' in x, foolist))

当理解不简单时,我的大脑会发现它们是不可理解的,所以我转到Map/减少/过滤函数:)

相关问题