过滤序列元素filter()

1.推导式

li = [1, 5, -7, 6, -9, 3, -4]
print([n for n in li if n > 0])
# 结果为[1, 5, 6, 3]

2.如果序列非常大,上述方法会占用大量内存,对内存敏感的可以使用生成器,然后依次取值

li = [1, 5, -7, 6, -9, 3, -4]	
li2 = (n for n in li if n > 0)
for n in li2:
	print(n)

3.如果碰到过滤条件比较复杂,用推导式无法完成,可以使用filter()函数

values = ['1', '2', '-3', '-', '4', 'N/A', '5']
def is_int(val):
    try:
        x = int(val)
        return True
    except ValueError:
        return False
ivals = list(filter(is_int, values))
print(ivals)
#结果 ['1', '2', '-3', '4', '5']
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值