J'essaie de faire une déclaration IF à l'intérieur d'une Lambda, mais j'essaie aussi de rendre tous les nombres impairs à la troisième aussi, la ligne Lambda ignore le i ** 3, Dans la deuxième ligne du code, j'essaie de i ** 3 Si c'est un nombre impair, mais le résultat montre les nombres impairs sans le faire ** 3
Je reçois [1,3,5,7,9] au lieu de [1,27 125,343 729] p> p>
5 Réponses :
Vous pouvez utiliser une compréhension: à l'aide de Filtre code> et
plan code>: p>
x% 2! = 0 code> est juste
x% 2 code>.
Utilisez ou, utilisez une expression génératrice uniquement Appliquer ou ne pas utiliser mappe code> pour obtenir le numéro cubé, puis filtrer
Aucun code> Valeurs:
mappe code> à des numéros impairs et jetez le reste: p>
mappe code> /
/
filtre Code> du tout: P>
[1, 27, 125, 343, 729]
Je ferais le premier exemple dans l'inverse: filtre des chances et cube toutes les cotes.
C'est mieux, je viens de commencer avec quelque chose qui est proche du code existant de OP.
Comme mentionné dans un commentaire Au lieu de cela, je voudrais utiliser une compréhension de liste avec conditionnel: p> Filtre code> A> N'effectue aucune transformation effective, il utilise simplement votre
lambda code> pour décider quoi de retourner.
numbers = range(1,10)
odd_numbers_to_the_third_2 = [i**3 for i in numbers if i%2 != 0]
ça ne fait pas ce qui est nécessaire
Whoops, fait maintenant
filtre () code>
filtres et ne transforme pas la liste. mappe () code>
est pour la transformation.
Donc, vous devriez filtrer d'abord pour que tous les nombres impairs et que vous pouvez transformer pour transformer: p> idéalement, vous devez utiliser la compréhension de liste qui est prouvée efficace que mappe code> /
Filtre code>
lambda code> combinaisons: p>
AS avec cette sortie: p> pour cette sortie: p> Filtre () CODE> Vérifie simplement les éléments de la liste et renvoie les valeurs qui répondent à la condition, vous pouvez utiliser
mapper () code> pour faire ce que vous voulez:
Vous avez déjà filtré toutes les cotes, pourquoi avez-vous besoin du si code> vérifiez à nouveau dans votre carte code>?
Filtre code>
uniquement des éléments filtres, comme le Le nom implique - ça ne les transforme pas. Vous devez effectuer la transformation séparément