我想寫一個函數,它將找到所有數字是至少一個數字的倍數至少一個數字在少於一個一定數量。以下是我試過到目前爲止:列表理解,找到列表中的每個數字的所有倍數小於一個數字
def MultiplesUnderX(MultArray,X):
'''
Finds all the multiples of each value in MultArray that
are below X.
MultArray: List of ints that multiples are needed of
X: Int that multiples will go up to
'''
return [i if (i % x == 0 for x in MultArray) else 0 for i in range(X)]
例如,MultiplesUnderX([2,3],10)將返回[2,3,4,6,8,9]。我有點不確定如何使用列表理解中的for循環來做到這一點。
爲什麼'3'不是在結果列表中? –
因爲我沒有在15個小時內睡過。 – greenthumbtack
'(對於MultArray中的x,i%x == 0)'是一個生成器表達式,而不是列表理解中的「for-loop」(這種情況是不可能的,因爲for循環需要for語句) 。它返回一個生成器對象,它是truthy。你想要使用'any'使用該生成器 –