有一个列表[1, 2, False, '', 'test', 0],现在需要把里面所有非空、非False,非0的数据取出来。...可能有一些人会使用列表推导式:
a = [1, 2, False, '', 'test', 0]
useful = [x for x in a if x]
但如果过滤规则稍微复杂一些呢?...例如,如果列表里面的元素不是字符串,那么先把元素转换为字符串,然后转换为bytes型数据,计算md5值。如果md5值转换成10进制数以后是3的倍数,那么就把这个数筛选出来。...在Python里面,有一个现成的函数filter也能实现这个效果:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = filter(check, a)
此时,获得的b...变量是一个生成器对象,只有在对它进行迭代的时候,才能获取里面的值。