Python: 数组条件过滤简洁实现方式

使用filter函数,实现一个条件判断函数即可。

比如想过滤掉字符串数组中某个敏感词,示范代码如下:

#filter out some unwanted tags
def passed(item):
    try:
       return item != "techbrood" #can be more a complicated condition here
    except ValueError:
       return False
       
org_words = [["this","is"],["demo","from"],["techbrood"]]       
words = [filter(passed, item) for item in org_words]

注意Python2.x和Python3.x对于filter/map的处理并不兼容,在Python2.x里面直接返回一个list.

在Python3.x里返回一个iterable对象,比如<filter object at 0x000000000251C978>,后面那串数字是对象引用地址。

可以使用list(words)转换。


参考链接:

https://docs.python.org/3.4/library/functions.html?highlight=filter#filter

已标记关键词 清除标记