3 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
計(jì)算有多少個(gè)整數(shù)可以被 10 整除,并測(cè)試這個(gè)數(shù)字是否是“多數(shù)”——也就是說,它是否大于或等于列表長(zhǎng)度的一半。像這樣:
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貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
該函數(shù)的目標(biāo)是獲取列表,對(duì)其進(jìn)行迭代并找出列表中的大多數(shù)整數(shù)是否可以被 10 整除。
您的列表將包含兩種整數(shù):可以被 10 整除的整數(shù)和不能被 10 整除的整數(shù)。您需要找到兩個(gè)類別中每個(gè)類別中的整數(shù)數(shù)量,比較這些數(shù)字并相應(yīng)地返回 True 或 False。因此,您的函數(shù)將如下所示:
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
當(dāng)然,上面所有的代碼都可以減少很多。但我想展示一種對(duì) Python 初學(xué)者來說更容易理解的算法。

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
奧斯卡對(duì)答案稍作修改:
def most_of(lst):
return sum(1 if n % 10 == 0 else -1 for n in lst) >= 0
當(dāng)然結(jié)果是一樣的
lst1 = [1,10,10,50,5]
lst2 = [1,2,55,77,6]
print(most_of(lst1)) # True
print(most_of(lst2)) # False
添加回答
舉報(bào)