python元组的删除_在元组列表中删除包含 nan 的元组— Python

我有很长的元组列表 , 并且想要使用Python删除其中包含 nan 的任何元组 .

我目前所拥有的:

???x = [ ( ‘记录开始’ ,0 ) , ( nan,4 ) , ( nan,7 ) , … , ( ‘事件标记 1 ’ ,150 ) ]

结果我正在寻找:

??x = [ ( ‘录制开始’ ,0 ) , ( ‘事件标记 1 ’ ,150 ) ]

我尝试使用 np.isnan 及其变体 , 但没有成功 , 并不断出现错误:输入类型不支持 ufunc ’ isnan ’ , 并且根据输入 , 不能安全地将输入强制转换为任何受支持的类型强制转换规则 " 安全 "

任何建议 , 将不胜感激!!

最佳答案

您可以使用列表推导来检查元组中的任何项目是否为 NaN. 首先检查类型 , 然后使用math.isnan进行检查 , 因为它不适用于其他类型:

import mathx = [ ( 'Recording start', 0 ) , ( float ( 'nan' ) , 4 ) , ( float ( 'nan' ) , 7 ) , ( 'Event marker 1', 150 ) ] res = [ t for t in x if not any ( isinstance ( n, float ) and math.isnan ( n ) for n in t ) ] print ( res )

输出:

[ ( 'Recording start', 0 ) , ( 'Event marker 1', 150 ) ]

原网页已经由 ZAKER 转码以便在移动设备上查看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值