Maison > Article > développement back-end > Code Python comment trouver le nombre de toutes les jonquilles
Comment trouver tous les numéros de narcisse dans le code Python : utilisez d'abord la liste pour parcourir les trois chiffres, puis marquez chaque numéro ; puis filtrez les tuples marqués comme True et enfin la première phrase. Mettez la deuxième valeur ; du tuple filtré dans la structure de liste et ajoutez une instruction d'impression.
Code Python pour trouver le nombre de toutes les jonquilles :
Méthode 1 :
>>> >>> a = list(map(lambda x: x[1], filter(lambda x: x[0], [(i*100+j*10+k == i**3+j**3+k**3, i**3+j**3+k**3) for i in range(1, 10) for j in range(0, 10) for k in range(0, 10)]))) >>> print(a) [153, 370, 371, 407] >>>
Recommandations d'apprentissage associées : Tutoriel vidéo Python
Explication :
Le code ci-dessus peut être décomposé en trois lignes de code :
a = [(i*100+j*10+k == i**3+j**3+k**3, i**3+j**3+k**3) for i in range(1, 10) for j in range(0, 10) for k in range(0, 10)] b = filter(lambda x: x[0], a) c = list(map(lambda x: x[1], b))
La première phrase signifie utiliser une liste pour parcourir les trois chiffres et marquer chaque nombre, si les jonquilles comptent, marquez Vrai, sinon marquez Faux et mettez les marques et les nombres dans un seul ancêtre. : (drapeau, valeur), tous les tuples sont placés dans une structure de liste.
La deuxième phrase signifie filtrer les tuples marqués comme True.
La troisième phrase signifie c.
Ajoutez l'instruction print et exécutez les trois lignes de code ci-dessus pour comprendre.
Méthode 2 :
Utilisez uniquement la dérivation de liste.
>>> a = [i**3+j**3+k**3 for i in range(1, 10) for j in range(0, 10) for k in range(0, 10) if i*100+j*10+k == i**3+j**3+k**3] >>> print(a) [153, 370, 371, 407] >>>
Recommandations associées : Cours vidéo de programmation
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!