猿问

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

如何创建一个函数,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 中真正做到这一点?


繁花如伊
浏览 105回答 6
6回答

蓝山帝景

您不需要遍历数字,只需计算零并与列表的长度进行比较......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)

萧十郎

一个直接的解决方案是计算不为 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

慕田峪7331174

# your code goes heredata=[0, 0, 0, 0, 0 , 0 , 4]def checker(data):    return len(list(filter(lambda x: x!=0, data)))>=2print(checker(data))

慕标5832272

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

Qyouu

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')

守候你守候我

你可以这样做: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")
随时随地看视频慕课网APP

相关分类

Python
我要回答