如何找到能被整数 10 整除的多数整数?

我正在编写一个函数“most_of”,它将数字列表作为参数。该函数的目标是获取列表,对其进行迭代并找出列表中的大多数整数是否可以被 10 整除。


例如,如果我通过了参数:


[1,10,10,50,5]

输出将是:


True

因为整数的 3/5 可以被 10 整除。但是,如果我通过了:


 [1,2,55,77,6]

输出将是:


 False

因为列表整数的 4/5 不能被 10 整除。


这是我尝试过的:


def most_of(lst):

    for i in lst:

        if lst[i] % 10 == 0:

           lst == True

        else:

           lst == False

我基本上被困在这一点上,因为这不会检查大多数数字是否可以被 10 整除,它只是进行除法。


感谢您的帮助!


开心每一天1111
浏览 250回答 3
3回答

慕田峪9158850

计算有多少个整数可以被 10 整除,并测试这个数字是否是“多数”——也就是说,它是否大于或等于列表长度的一半。像这样:def most_of(lst):    num = sum(1 for n in lst if n % 10 == 0)    return num >= len(lst) / 2.0例如:>>> most_of([1,10,10,50,5])True>>> most_of([1,2,55,77,6])False

HUH函数

该函数的目标是获取列表,对其进行迭代并找出列表中的大多数整数是否可以被 10 整除。您的列表将包含两种整数:可以被 10 整除的整数和不能被 10 整除的整数。您需要找到两个类别中每个类别中的整数数量,比较这些数字并相应地返回 True 或 False。因此,您的函数将如下所示:def most_of(lst):    divisible_counter = 0    non_divisible_counter = 0    for element in lst:        if element % 10 == 0:            divisible_counter +=1        else:            non_divisible_counter += 1    if divisible_counter > non_divisible_counter:        return True    else:        return False当然,上面所有的代码都可以减少很多。但我想展示一种对 Python 初学者来说更容易理解的算法。

函数式编程

奥斯卡对答案稍作修改:def most_of(lst):    return sum(1 if n % 10 == 0 else -1 for n in lst) >= 0当然结果是一样的lst1 = [1,10,10,50,5]lst2 = [1,2,55,77,6]print(most_of(lst1))  # Trueprint(most_of(lst2))  # False
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python