One place for hosting & domains

      indexer

      Comment indexer et couper des chaînes dans Python 3


      Introduction

      Le type de données de chaîne Python est une séquence composée d’un ou de plusieurs caractères individuels et constituée de lettres, de chiffres, de caractères d’espacement ou de symboles. Puisqu’une chaîne est une séquence, vous pouvez y accéder de la même manière que pour les autres types de données basés sur des séquences, via l’indexation et le découpage en tranches.

      Ce tutoriel vous montrera de quelle manière accéder aux chaînes via l’indexation, les découper en séquences de caractères et passer en revue certaines méthodes de comptage et de localisation de caractères.

      De quelle manière sont indexées les chaînes

      Comme les éléments des list data type correspondent à un numéro d’index, chacun des caractères d’une chaîne correspondent également à un numéro d’index, en commençant par le numéro d’index 0.

      Pour la chaîne Sammy Shark! la répartition de l’index ressemble à ce qui suit  :

      S a m m y S h a r k !
      0 1 2 3 4 5 6 7 8 9 10 11

      Comme vous pouvez le voir, le premier S commence à l’index 0 et la chaîne se termine à l’index 11 avec le symbole ! .

      Nous pouvons également remarquer que le caractère d’espacement entre Sammy et Shark correspond aussi à un numéro d’index qui lui est propre. Dans ce cas, le numéro d’index associé à l’espace est 5.

      Le point d’exclamation (!) est également associé à un numéro d’index. Tous les autres symboles ou signes de ponctuation, comme *#$&. ;?, sont aussi considérés comme des caractères et seraient associés à leur propre numéro d’index.

      Le fait qu’à chaque caractère d’une chaîne Python correspond un numéro d’index, nous pouvons accéder aux chaînes et les manipuler de la même manière que nous le ferions avec d’autres types de données séquentielles.

      Accéder aux caractères avec un numéro d’index positif

      En référençant les numéros d’index, nous pouvons isoler l’un des caractères d’une chaîne. Pour cela, nous devons mettre les numéros entre crochets. Déclarons une chaîne, imprimons-la et appelons le numéro d’index entre crochets :

      ss = "Sammy Shark!"
      print(ss[4])
      

      Output

      y

      Lorsque nous faisons référence à un numéro d’index particulier d’une chaîne, Python renvoie le caractère qui se trouve dans cette position. Étant donné que la lettre y est au numéro d’index 4 de la chaîne ss = "Sammy Shark!", lorsque nous imprimons ss[4], nous recevons la sortie y comme la sortie.“”

      Les numéros d’index nous permettent d’accéder à des caractères spécifiques dans une chaîne.

      Accéder aux caractères par numéro d’index négatif

      Si nous souhaitons localiser un élément vers la fin d’une longue chaîne, nous pouvons également compter à rebours à partir de la fin de la chaîne, en commençant par le numéro d’index -1.

      Pour la même chaîne Sammy Shark! la ventilation de l’index négatif ressemble à ce qui suit :

      S a m m y S h a r k !
      -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

      En utilisant des numéros d’index négatifs, nous pouvons imprimer le caractère r, en nous référant à sa position à l’index -3, comme ceci :

      print(ss[-3])
      

      Output

      r

      L’utilisation de numéros d’index négatifs peut être avantageuse pour isoler un caractère unique qui se trouve vers la fin d’une longue chaîne.

      Découper des chaînes

      Nous pouvons également appeler une plage de caractères de la chaîne. Disons que nous souhaitons juste imprimer le mot Shark. Nous pouvons le faire en créant une slice, qui est une séquence de caractères dans une chaîne d’origine. Avec les slices, nous pouvons appeler plusieurs valeurs de caractères en créant une plage de numéros d’index séparés par deux points [x:y] :

      print(ss[6:11])
      

      Output

      Shark

      Lorsque vous créez une slice, comme dans [6:11], le premier numéro d’index correspond à l’endroit où la slice commence (inclusive), le second numéro d’index correspond à l’endroit où la slice se termine (exclusive). C’est pour cette raison que dans notre exemple ci-dessus, la plage doit correspondre au numéro d’index qui se trouve juste après la fin de la chaîne.

      Lorsque nous découpons des chaînes, nous créons une substring, qui est en réalité une chaîne qui existe dans une autre. Lorsque nous appelons ss[6:11], nous appelons la sous-chaîne Shark qui existe dans la chaîne Sammy Shark!

      Si nous souhaitons inclure l’une des extrémités d’une chaîne, nous pouvons omettre l’un des numéros dans la syntaxe suivante : string [n:n]. Par exemple, pour imprimer le premier mot de la chaîne ss – « Sammy » – nous pouvons saisir :

      print(ss[:5])
      

      Output

      Sammy

      Nous avons procédé à cette opération en omettant le numéro d’index avant les deux points dans la syntaxe de slice et en incluant uniquement le numéro d’index qui se trouve après. Ce dernier fait référence à la fin de la sous-chaîne.

      Pour imprimer une sous-chaîne qui commence au milieu d’une chaîne et continue jusqu’à à la fin, nous devons inclure uniquement le numéro d’index avant les deux points :

      print(ss[7:])
      

      Output

      hark!

      En incluant uniquement le numéro d’index avant les deux points et en laissant le second numéro d’index hors de la syntaxe, la sous-chaîne ira du caractère qui correspond au numéro d’index appelé à la fin de la chaîne.

      Vous pouvez également utiliser des numéros d’index négatifs pour découper une chaîne. Comme nous l’avons vu auparavant, les index négatifs d’une chaîne par commencent par -1. Ensuite, comptez à partir de ce chiffre jusqu’à atteindre le début de la chaîne. Lorsque nous utilisons des numéros d’index négatifs, nous devons tout d’abord commencer par l’endroit où le plus petit chiffre se trouve plus tôt dans la chaîne.

      Utilisons deux numéros d’index négatifs pour découper la chaîne ss :

      print(ss[-4:-1])
      

      Output

      ark

      La sous-chaîne « ark » est imprimée à partir de la chaîne « Sammy Shark! » car le caractère « a » se trouve à la position du numéro d’index -4, et le caractère « k » se trouve juste avant la position du numéro d’index -1.

      Spécifier une stride lors du découpage des chaînes

      En plus des deux numéros d’index, le découpage de chaîne peut accepter un troisième paramètre. Le troisième paramètre spécifie la stride, qui renvoie à la quantité de caractères à passer une fois que le premier caractère est récupéré à partir de la chaîne. Jusqu’à présent, nous avons omis le paramètre stride. Python utilise la stride 1 par défaut afin que chaque caractère entre deux numéros d’index soit bien récupéré.

      Examinons à nouveau l’exemple ci-dessus dans lequel la sous-chaîne « Shark » est imprimée :

      print(ss[6:11])
      

      Output

      Shark

      Nous pouvons obtenir les mêmes résultats en incluant un troisième paramètre avec une stride de 1 :

      print(ss[6:11:1])
      

      Output

      Shark

      Ainsi, avec une stride de 1, chaque caractère qui se trouve entre deux numéros d’index d’une slice sera récupéré. Si nous omettons le paramètre stride, Python utilisera la valeur de 1 par défaut.

      Si, au lieu de cela, nous augmentons la stride, nous verrons que les caractères sont ignorés :

      print(ss[0:12:2])
      

      Output

      SmySak

      En spécifiant la stride de 2 comme dans le dernier paramètre de la syntaxe ss[0:12:2], Python ignore tout autre caractère. Examinons les caractères imprimés en rouge :

      Sammy Shark!

      Notez que, si vous spécifiez une stride de 2, le caractère d’espacement de l’index numéro 5 est également ignoré.

      Si nous utilisons un numéro plus grand pour notre paramètre stride, la sous-chaîne que nous obtiendrons sera significativement plus petite :

      print(ss[0:12:4])
      

      Output

      Sya

      En utilisant la stride de 4 pour le dernier paramètre de la syntaxe ss[0:12:4], Python imprime uniquement tous les quatre caractères. Encore une fois, examinons les caractères imprimés en rouge :

      Sammy Shark!

      Dans cet exemple, le caractère d’espacement est également ignoré.

      Étant donné que nous imprimons l’ensemble de la chaîne, dans la syntaxe, nous pouvons omettre les deux numéros d’index et conserver les deux points pour obtenir le même résultat :

      print(ss[::4])
      

      Output

      Sya

      En omettant les deux numéros d’index et en conservant les deux points, l’ensemble de la chaîne restera dans la plage. Dans le même temps, en ajoutant un paramètre final pour la stride, vous spécifierez le nombre de caractères à ignorer.

      En outre, vous pouvez indiquer une valeur numérique négative pour la stride, que nous pouvons utiliser pour imprimer la chaîne d’origine dans le sens inverse si nous configurons la stride sur -1 :

      print(ss[::-1])
      

      Output

      !krahS ymmaS

      L’utilisation des deux points sans spécifier de paramètre vous permettra d’inclure tous les caractères de la chaîne d’origine. Une stride de 1 inclura chaque caractère sans en sauter aucun et en utilisant une valeur négative pour cette stride, vous inverserez l’ordre des caractères.

      Faisons-le à nouveau, mais avec une stride de -2 :

      print(ss[::-2])
      

      Output

      !rh ma

      Dans cet exemple, ss[::-2], nous traitons l’intégralité de la chaîne d’origine, car aucun numéro d’index n’est inclus dans les paramètres et nous inversons la chaîne à l’aide d’une stride négative. En outre, en utilisant une stride de -2, nous ignorons toutes les autres lettres de la chaîne inversée :

      ! krahS[espace]ymmaS

      Dans cet exemple, le caractère d’espacement est imprimé.

      Spécifiez le troisième paramètre de la syntaxe de la tranche Python pour indiquer la stride de la sous-chaîne que vous extrayez de la chaîne d’origine.

      Méthodes de comptage

      Bien que nous devions réfléchir pour trouver les numéros d’index pertinents qui correspondent aux caractères dans les chaînes, il vaut la peine d’étudier certaines des méthodes qui permettent de compter les chaînes ou renvoyer les numéros d’index. Cette méthode peut vous être utile pour limiter le nombre de caractères acceptés dans un formulaire que les utilisateurs devront compléter ou pour comparer les chaînes. Comme pour les autres types de données séquentielles, vous pouvez utiliser plusieurs méthodes pour compter les chaînes.

      Nous allons tout d’abord découvrir la méthode len() qui vous permet d’obtenir la longueur de tout type de données qui se trouvent dans une séquence, que ce soit dans l’ordre ou pas et notamment des chaînes, des listes, des tuples et des dictionaries.

      Imprimons la longueur de la chaîne ss :

      print(len(ss))
      

      Output

      12

      La longueur de la chaîne « Sammy Shark! » est de 12 caractères, parmi lesquels se trouvent le caractère d’espacement et le symbole du point d’exclamation.

      Au lieu d’utiliser une variable, nous pouvons également passer une chaîne directement dans la méthode len() :

      print(len("Let's print the length of this string."))
      

      Output

      38

      La méthode len() compte le nombre total de caractères dans une chaîne.

      Si nous souhaitons compter le nombre de fois qu’un caractère particulier ou une séquence de caractères apparaît dans une chaîne, nous pouvons le faire en utilisant la méthode str.count(). Prenons notre chaîne ss = "Sammy Shark!" et comptons le nombre de fois que le caractère « a » apparaît :

      print(ss.count("a"))
      

      Output

      2

      Nous pouvons rechercher un autre caractère :

      print(ss.count("s"))
      

      Output

      0

      Bien que la lettre « S » soit dans la chaîne, n’oubliez surtout pas que chaque caractère est sensible à la casse. Pour rechercher toutes les lettres dans une chaîne quelle que soit la cassse, nous pouvons utiliser la méthode str.lower() afin de tout d’abord convertir la chaîne en minuscules. Vous pouvez en savoir plus sur cette méthode, dans « Introduction aux méthodes de chaîne en Python 3. »

      Essayons str.count() avec une séquence de caractères :

      likes = "Sammy likes to swim in the ocean, likes to spin up servers, and likes to smile."
      print(likes.count("likes"))
      

      Output

      3

      Dans la chaîne likes, la séquence de caractères équivalente à « likes » apparaît 3 fois dans la chaîne d’origine.

      Nous pouvons également trouver la position à laquelle un caractère ou une séquence de caractères se trouve dans une chaîne. Pour cela, nous pouvons utiliser la méthode str.find() et renvoyer la position du caractère en fonction du numéro d’index.

      Nous pouvons vérifier à quel endroit se trouve le premier « m » dans la chaîne ss :

      print(ss.find("m"))
      

      Ouput

      2

      Le premier caractère « m » se trouve à la position de l’index 2 dans la chaîne « Sammy Shark! » Nous pouvons examiner les positions du numéro d’index de la chaîne ss ci-dessus.

      Voyons à quel endroit se trouve la première séquence de caractères « likes » qui se trouve dans la chaîne likes :

      print(likes.find("likes"))
      

      Ouput

      6

      La première instance de la séquence de caractères « likes » commence à la position numéro d’index 6, qui correspond à l’endroit où est positionné le caractère l dans la séquence likes.

      Et que faire pour savoir à quel endroit commence la deuxième séquence de « likes » ? Pour cela, nous devons passer un second paramètre dans la méthode str.find() qui commencera par un numéro d’index spécifique. Donc, au lieu de commencer au début de la chaîne, commençons après l’index numéro 9 :

      print(likes.find("likes", 9))
      

      Output

      34

      Dans ce second exemple qui commence par l’index numéro 9, la première occurrence de la séquence de caractères « likes » commence à l’index numéro 34.

      Nous pouvons également ajouter un troisième paramètre pour spécifier la fin de la plage. Comme pour le découpage, nous pouvons le faire en comptant à rebours, en utilisant un numéro d’index négatif :

      print(likes.find("likes", 40, -6))
      

      Output

      64

      Dans ce dernier exemple, nous recherchons la position de la séquence « likes » entre les numéros d’index 40 et -6. Étant donné que le paramètre final saisi est un numéro négatif, le décompte se fera à partir de la fin de la chaîne d’origine.

      Vous pouvez utiliser les méthodes de chaîne len(), str.count() et str.find() pour déterminer la longueur, le nombre de caractères ou de séquences de caractères ainsi que la position de l’index de caractères ou de séquences de caractères dans les chaînes.

      Conclusion

      En ayant cette capacité d’appeler des numéros d’index spécifiques de chaînes ou une tranche particulière d’une chaîne, nous pouvons travailler avec ce type de données de manière plus flexible. Étant donné que les chaînes, comme les listes et les tuples, sont un type de données basées sur des séquences, vous pouvez y accéder via l’indexation et le découpage.

      Pour continuer à développer vos connaissances sur les chaînes, n’hésitez à en lire davantage sur le formatage des chaînes et les méthodes de chaînes.



      Source link

      Comment indexer, diviser et manipuler des chaînes en JavaScript


      Introduction

      Une string est une séquence d’un ou plusieurs caractères qui peut être composée de lettres, de chiffres ou de symboles. Il est possible d’accéder à chaque caractère d’une chaîne JavaScript en utilisant un numéro d’index. Différentes méthodes et propriétés sont disponibles pour toutes les chaînes.

      Au cours de ce tutoriel, nous allons apprendre à faire la différence entre les primitifs de chaînes et l’objet String. Ensuite, nous verrons de quelle manière les chaînes sont indexées et comment accéder aux caractères d’une chaîne. Pour finir, nous aborderons les propriétés et les méthodes couramment utilisées sur les chaînes de caractères.

      Primitifs de chaînes et objets de chaînes

      Tout d’abord, nous allons vous donner une explication sur ces deux types de chaînes de caractères. JavaScript fait la distinction entre la string primitive, un type de données immuable et l’objet String.

      Afin de voir la différence entre les deux, nous allons initialiser un primitif de chaîne et un objet de chaîne.

      // Initializing a new string primitive
      const stringPrimitive = "A new string.";
      
      // Initializing a new String object
      const stringObject = new String("A new string.");  
      

      Nous pouvons utiliser l’opérateur typeof pour déterminer le type d’une valeur. Dans le premier exemple, nous avons tout simplement attribué une chaîne à une variable.

      typeof stringPrimitive;
      

      Output

      string

      Dans le second exemple, nous avons utilisé new String() pour créer un objet de chaîne et l’affecter à une variable.

      typeof stringObject;
      

      Output

      object

      La plupart du temps, vous créerez des primitifs de chaîne. JavaScript peut accéder et utiliser les propriétés et méthodes intégrées de l’accès objet String sans réellement modifié le primitif de la chaîne que vous avez créée dans un objet.

      Bien que ce concept soit un peu difficile à comprendre au début, vous devriez pouvoir faire la distinction entre un primitif et un objet. En résumé, vous pouvez utiliser des méthodes et des propriétés sur toutes les chaînes. En arrière-plan, JavaScript procèdera à une conversion en objet, puis de nouveau en primitif à chaque fois qu’une méthode ou une propriété sera appelée.

      De quelle manière sont indexées les chaînes

      Chaque caractère qui se trouve dans une chaîne correspond à un numéro d’index. La numérotation commence par 0.

      Afin de le démontrer, nous allons créer une chaîne avec la valeur How are you?.

      H o w a r e y o u ?
      0 1 2 3 4 5 6 7 8 9 10 11

      Le premier caractère de la chaîne est H auquel correspond l’index 0. Le dernier caractère est ?, qui correspond à 11. Les espaces sont également indexés, le 3 et le 7.

      Le fait de pouvoir accéder à chaque caractère d’une chaîne nous donne plusieurs manières de travailler avec les chaînes et de les manipuler.

      Accéder aux caractères

      Nous allons vous montrer comment accéder aux caractères et index avec la chaîne How are you? .

      "How are you?";
      

      En utilisant des crochets, nous pouvons accéder à n’importe quel caractère de la chaîne.

      "How are you?"[5];
      

      Output

      r

      Nous pouvons également utiliser la méthode charAt() pour renvoyer le caractère en utilisant le numéro d’index comme paramètre.

      "How are you?".charAt(5);
      

      Output

      r

      Sinon, nous pouvons utiliser indexOf() pour renvoyer le numéro d’index par la première instance d’un caractère.

      "How are you?".indexOf("o");
      

      Output

      1

      Bien que « o » apparaisse deux fois dans la chaîne How are you? , indexOf() obtiendra la première instance.

      lastIndexOf() permet de trouver la dernière instance.

      "How are you?".lastIndexOf("o");
      

      Output

      9

      Avec ces deux méthodes, vous pouvez également rechercher plusieurs caractères dans la chaîne. Elles renverront le numéro d’index du premier caractère dans l’instance.

      "How are you?".indexOf("are");
      

      Output

      4

      De son côté, la méthode slice() renvoie les caractères entre deux numéros d’index. Le premier paramètre correspondra au numéro d’index du début. Le second paramètre correspondra au numéro d’index où il devrait se terminer.

      "How are you?".slice(8, 11);
      

      Output

      you

      Notez que 11 correspond à ?, mais que ? ne fait pas partie de la sortie renvoyée. slice() renverra ce qui se trouve entre deux mais ne comprendra pas le dernier paramètre.

      Si un second paramètre n’est pas inclus, slice() renverra tout ce qui se trouve entre le paramètre et la fin de la chaîne.

      "How are you?".slice(8);
      

      Output

      you?

      Pour résumer, charAt() et slice() vous aideront à renvoyer les valeurs de chaîne en fonction des numéros d’index. indexOf() et lastIndexOf() feront l’inverse. Ils renverront les numéros d’index en fonction des caractères de la chaîne fournis.

      Déterminer la longueur d’une chaîne

      En utilisant la propriété length, nous pouvons renvoyer le nombre de caractères dans une chaîne.

      "How are you?".length;
      

      Output

      12

      N’oubliez pas que la propriété length renvoie le nombre réel de caractères commençant par 1, ce qui résulte à 12 et non pas le numéro d’index final, qui commence par 0 et se termine par 11.

      Convertir des majuscules en minuscules

      Les deux méthodes intégrées toUpperCase() et toLowerCase() vous permettront de formater facilement un texte et de faire des comparaisons textuelles en JavaScript.

      toUpperCase() convertira tous les caractères en majuscules.

      "How are you?".toUpperCase();
      

      Output

      HOW ARE YOU?

      toLowerCase() convertira tous les caractères en minuscules.

      "How are you?".toLowerCase();
      

      Output

      how are you?

      Ces deux méthodes de formatage n’utilisent aucun paramètre supplémentaire.

      Il convient de noter que ces méthodes ne modifient pas la chaîne d’origine.

      Diviser des chaînes

      JavaScript intègre une méthode très utile qui permet de diviser une chaîne par caractère et de créer un nouveau tableau à partir des sections. Nous allons utiliser la méthode split() pour diviser le tableau par un caractère d’espacement, représenté par " ".

      const originalString = "How are you?";
      
      // Split string by whitespace character
      const splitString = originalString.split(" ");
      
      console.log(splitString);
      

      Output

      [ 'How', 'are', 'you?' ]

      Maintenant que nous avons un nouveau tableau dans la variable splitString, nous pouvons accéder à chaque section en utilisant un numéro d’index.

      splitString[1];
      

      Output

      are

      Si un paramètre donné reste vide, split() créera un tableau séparé par des virgules avec chaque caractère dans la chaîne.

      En divisant les chaînes, vous pouvez établir le nombre de mots qui se trouvent dans une phrase et utiliser la méthode pour déterminer quels sont les prénoms et noms de famille des personnes.

      Retirer les espaces

      La méthode trim() de JavaScript supprime les espaces qui se trouvent aux deux extrémités d’une chaîne, mais pas ceux qui se trouvent entre deux. Les espaces peuvent correspondre à des onglets ou des espaces.

      const tooMuchWhitespace = "     How are you?     ";
      
      const trimmed = tooMuchWhitespace.trim();
      
      console.log(trimmed);
      

      Output

      How are you?

      La méthode trim() est un moyen simple de procéder à la tâche courante qui consiste à supprimer les espaces excédentaires.

      Trouver et remplacer les valeurs d’une chaîne

      Vous pouvez recherche une valeur dans une chaîne et la remplacer avec une nouvelle en utilisant la méthode replace(). Le premier paramètre correspondra à la valeur à trouver et le second paramètre correspondra la valeur avec laquelle elle sera remplacée.

      const originalString = "How are you?"
      
      // Replace the first instance of "How" with "Where"
      const newString = originalString.replace("How", "Where");
      
      console.log(newString);
      

      Output

      Where are you?

      Nous pouvons non seulement remplacer une valeur avec une autre valeur de chaîne, mais également utiliser des Regular Expressions pour rendre replace() plus puissant. Par exemple, replace() affecte uniquement la première valeur. Cependant, nous pouvons utiliser la balise g (global) pour récupérer toutes les instances d’une valeur et la balise i (sensible à la casse) pour ignorer la casse.

      const originalString = "Javascript is a programming language. I'm learning javascript."
      
      // Search string for "javascript" and replace with "JavaScript"
      const newString = originalString.replace(/javascript/gi, "JavaScript");
      
      console.log(newString);
      

      Output

      JavaScript is a programming language. I'm learning JavaScript.

      Il s’agit d’une manière très commune d’utiliser des expressions régulières. Consultez Regexr pour vous faire la main sur d’autres exemples de RegEx.

      Conclusion

      Les chaînes sont l’un des types de données les plus fréquemment utilisés, avec lesquels nous pouvons faire un grand nombre de choses.

      Au cours de ce tutoriel, nous avons appris à faire la différence entre la primitive d’une chaîne et l’objet String. Nous avons également vu de quelle manière les chaînes sont indexées. Enfin, nous avons appris à utiliser les méthodes et propriétés intégrées dans les chaînes pour accéder aux caractères, formater un texte et trouver et remplacer des valeurs.

      Pour avoir un aperçu plus général sur les chaînes, lisez le tutoriel « Comment travailler avec des chaînes en JavaScript. »



      Source link