Est-ce que quelqu'un connaît la différence entre ces deux et pourquoi? Lambda ne permet pas d'inverser une seule chaîne?
s = 'justdoit' list(map(lambda s: s[::-1], s))
3 Réponses :
Il applique le trancheur, mais comme une chaîne est ibloérable, elle est appliquée à chaque lettre de Par exemple: p> et donc p> S code> et que l'inversion d'une chaîne à une seule lettre est la seule lettre.
Je pense que cela se résume à la façon dont Python / Lambda interprète les chaînes et les tableaux. Lorsque vous passez une seule chaîne dans votre 2e tentative, la Lambda le prend en tant que tableau de caractères. Où comme dans la première tentative, il le reçoit comme une gamme d'objets de chaîne pour travailler. Si vous souhaitez inverser même une seule chaîne, vous devrez le transmettre comme une matrice de chaîne unique.
par exemple. p> ceci devrait fonctionner p> p>
Python mappe code> s'applique sur une liste. Vous devez donc envelopper la chaîne dans une liste.
N'est-ce pas une liste aussi? Une liste avec un seul élément de chaîne ..?
Les chaînes et les listes sont à la fois itérables, mais leurs éléments diffèrent: les éléments de liste sont des éléments dans la liste et les éléments de chaîne sont des caractères de la chaîne. Donc, dans le cas de la liste, vous appliquez Lambda à l'élément dans la liste (dans ce cas un mot) et en cas de chaîne, vous appliquez Lambda à un caractère.