加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在Python中标识接近给定数字的列表中的非零元素

发布时间:2020-12-20 11:52:10 所属栏目:Python 来源:网络整理
导读:我有这样的列表: lst = [1,5,4,0] 编辑: 我想在列表中找到第一个数字的位置,该位置不等于零,并且它是最接近的给定数字. a = 3 # (given number) 它应该返回4作为索引和值. 我试过这个: min(enumerate(lst),key=lambda x: abs(x[1]-a)) 但它也显示了0元素.
我有这样的列表:

lst = [1,5,4,0]

编辑:
我想在列表中找到第一个数字的位置,该位置不等于零,并且它是最接近的给定数字.

a = 3  # (given number)

它应该返回4作为索引和值.
我试过这个:

min(enumerate(lst),key=lambda x: abs(x[1]-a))

但它也显示了0元素.

这是更好的方法吗?

解决方法

如果我理解正确,只需在枚举后过滤掉零:

In [1]: lst = [1,0]

In [2]: a = 3

In [3]: min(filter(lambda x: x[1] != 0,enumerate(lst)),key=lambda x: abs(x[1] - a))
Out[3]: (4,4)

但是,对于给定的值,您自己的示例也会返回(4,4). a = 0时有区别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读