python3使用过程中关于map、filter的一个小坑
2016-09-04 本文已影响785人
无名氏_1
实例
过滤用户输入的一段话 检测其中是否包含敏感词
demo思路及代码
参考了一个python2程序 先过滤关键字中的换行符号 map之后形成新的敏感词列表 对输入进行filter过滤 如果过滤结果大于0 说明包含敏感词
异常
第一次执行代码 得到了预期的效果 控制台输出了“包含”字样 但是当第二次执行的时候 竟然输出了“不包含”
调试
尝试输出每次过滤时的 敏感词list
发现竟然为空
思考及原因
python3中 filter map 之后 返回的不再是list 而是一个map Object 或者 filter Object 需要list转换真正的列表 这样下次访问的时候才不会为空
link: python2 python3区别
ps. map Object ,filter Object 官方叫法为可迭代对象