"Multiple de 3 et 5"
Parmi les nombres naturels inférieurs à 10, il y en a quatre qui sont des multiples de 3 ou 5, et la somme de ceux-ci est 23.
De la même manière, trouvez la somme des nombres inférieurs à 1000 et multiples de 3 ou 5.
La notation d'inclusion de liste vous permet d'écrire quelque chose de proche d'un type de fonction.
Notation d'inclusion de liste
multiplesOf3or5 = [n for n in range(1, 1000) if n % 3 == 0 or n % 5 == 0]
answer = sum(multiplesOf3or5)
print(answer)
Si vous l'écrivez plus comme un type de fonction avec la fonction de filtre,
Type de fonction
def isMultipleOf3or5(n):
return n % 3 == 0 or n % 5 == 0
multiplesOf3or5 = filter(isMultipleOf3or5, range(1, 1000))
answer = sum(multiplesOf3or5)
print(answer)
En Python, le nom de la fonction devient un objet de fonction tel quel, vous pouvez donc simplement écrire le nom de la fonction dans le premier argument de la fonction de filtre. C'est beaucoup plus facile et plus intuitif que les délégués C #.
Vous pouvez également remplacer la fonction par une expression lambda. Expressions lambda en Python lambda [argument 1], [argument 2]: [expression] Je vais l'écrire comme. (Je n'ai écrit que deux arguments, mais bien sûr trois ou plus sont OK.)
Style Lambda
multiplesOf3or5 = filter(lambda n: n % 3 == 0 or n % 5 == 0, range(1, 1000))
answer = sum(multiplesOf3or5)
print(answer)
Si vous utilisez l'expression lambda, elle sera similaire à la notation d'inclusion de liste. Dans ce cas, je pense que la notation de table dans la liste est plus intuitive que l'expression lambda.
Recommended Posts