3 回答

TA貢獻1794條經驗 獲得超8個贊
計算有多少個整數可以被 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
添加回答
舉報