Maison > développement back-end > Tutoriel Python > Pourquoi .join() insère-t-il des caractères entre les éléments au lieu d'ajouter une chaîne en Python ?

Pourquoi .join() insère-t-il des caractères entre les éléments au lieu d'ajouter une chaîne en Python ?

Mary-Kate Olsen
Libérer: 2024-11-19 20:01:03
original
561 Les gens l'ont consulté

Why Does .join() Insert Characters Between Elements Instead of Appending a String in 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))
Copier après la connexion

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"])
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal