为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查我的列表中是否有两个以上的值不同于 0?

如何检查我的列表中是否有两个以上的值不同于 0?

繁花如伊 2022-10-06 18:37:16
如何创建一个函数,True如果我的列表中有 2 个或更多项目不同于,则0返回False,如果我的列表中的项目少于 2 个,则返回0?(不正确的代码,所以你明白了)list=[0, 0, 0, 0, 0, 1, 0 , 4]def checker:    if > 2 items in list are > 0:        return True    else:        return False我怎么能在 Python 中真正做到这一点?
查看完整描述

6 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

您不需要遍历数字,只需计算零并与列表的长度进行比较......


my_list=[0, 0, 0, 0, 0, 1, 0 , 4]

def checker(my_list):

    return len(my_list) - my_list.count(0) >= 2 

checker(my_list)


查看完整回答
反对 回复 2022-10-06
?
萧十郎

TA贡献1815条经验 获得超13个赞

一个直接的解决方案是计算不为 0 的元素的数量


def checker(lst):

    counter = 0

    for i in lst:

        if (i != 0):

            counter += 1

    return counter >= 2

更好的解决方案是使用列表推导:


def checker(lst):

    return len([i for i in lst if i != 0]) >= 2


查看完整回答
反对 回复 2022-10-06
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

# your code goes here

data=[0, 0, 0, 0, 0 , 0 , 4]

def checker(data):

    return len(list(filter(lambda x: x!=0, data)))>=2


print(checker(data))


查看完整回答
反对 回复 2022-10-06
?
慕标5832272

TA贡献1966条经验 获得超4个赞

def checker(l, thresh=2):  
  return len([i for i in l if i > 0]) >= thresh


查看完整回答
反对 回复 2022-10-06
?
Qyouu

TA贡献1786条经验 获得超11个赞

list1=[0, 0, 0, 0, 0, 1, 0 , 4]

if len([x for x in list1 if x!=0 ])>1:

     print('True')

else:

     print('False')


查看完整回答
反对 回复 2022-10-06
?
守候你守候我

TA贡献1802条经验 获得超10个赞

你可以这样做:


lst=[0, 0, 0, 0, 0, 1, 0 , 4]


if sum(map(bool,lst)) >= 2:

    print("2 or more non-zero")

else:

    print("fewer than 2 non-zero")


查看完整回答
反对 回复 2022-10-06
  • 6 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信