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

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

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

开心每一天1111 2021-08-24 17:07:02
我正在编写一个函数“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 整除,它只是进行除法。感谢您的帮助!
查看完整描述

3 回答

?
慕田峪9158850

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

计算有多少个整数可以被 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


查看完整回答
反对 回复 2021-08-24
?
HUH函数

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

该函数的目标是获取列表,对其进行迭代并找出列表中的大多数整数是否可以被 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 初学者来说更容易理解的算法。


查看完整回答
反对 回复 2021-08-24
?
函数式编程

TA贡献1807条经验 获得超9个赞

奥斯卡对答案稍作修改:


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))  # True

print(most_of(lst2))  # False


查看完整回答
反对 回复 2021-08-24
  • 3 回答
  • 0 关注
  • 249 浏览
慕课专栏
更多

添加回答

举报

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