3 回答
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
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 初学者来说更容易理解的算法。
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
添加回答
举报