Maison > Article > développement back-end > Pourquoi .join() insère-t-il des caractères entre les éléments au lieu d'ajouter une chaîne en Python ?
Comprendre la méthode Join() pour la concaténation de chaînes
En travaillant avec Python, vous rencontrerez peut-être l'idée que .join() est la méthode préférée pour concaténer des chaînes. Cependant, sa fonctionnalité peut être déroutante pour les débutants.
Considérez cet extrait de code :
strid = repr(595) print(array.array('c', random.sample(string.ascii_letters, 20 - len(strid))).tostring().join(strid))
Ce code ne se comporte pas comme prévu. Au lieu d'ajouter "595" au résultat, il produit une sortie de caractères de l'alphabet ASCII entrecoupés des chiffres de "595".
La méthode .join()
Pour comprendre pourquoi, démontons la méthode .join(). Il prend une chaîne comme argument et l'insère entre les éléments d'une liste donnée. Par exemple :
","join(["a", "b", "c"])
Produira "a,b,c". Le "," est inséré entre chaque élément de la liste.
Dans votre code, "595" est traité comme une liste de trois caractères individuels : ["5", "9", "5"]. Par conséquent, l'argument chaîne de la méthode .join() est inséré entre ces caractères, ce qui donne le résultat observé.
Méthode alternative :
Si votre intention est de concaténer la chaîne "595" à la chaîne générée, vous devez plutôt utiliser l'opérateur :
print(array.array('c', random.sample(string.ascii_letters, 20 - len(strid))).tostring() + strid)
Cela concatènera correctement les deux chaînes, produisant une seule chaîne avec le contenu souhaité.
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!