Ich versuche, eine Funktion zu schreiben, die alle Zahlen finden, die ein Vielfaches von mindestens einer Zahl in einer Liste sind, wo das Vielfache weniger als a ist bestimmte Nummer. Hier ist, was ich bisher versucht:Listenverständnis, um alle Vielfachen jeder Zahl in der Liste zu finden weniger als eine Zahl
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)]
Zum Beispiel MultiplesUnderX ([2,3], 10) zurückkehren würde [2,3,4,6,8,9]. Ich bin ein wenig unsicher, wie man das mit der for-Schleife innerhalb des Listenverständnisses macht.
Warum ist '3' nicht in der Ergebnisliste? –
Weil ich nicht in 15 Stunden geschlafen habe. – greenthumbtack
'(i% x == 0 für x in MultArray)' ist ein Generatorausdruck, keine "for-Schleife" innerhalb des Listenverständnisses (so etwas ist nicht möglich, da eine for-Schleife eine for-Anweisung benötigt) Es gibt ein Generatorobjekt zurück, das truthy ist. Sie wollen diesen Generator mit 'any' verwenden. –