Je suis assez nouveau sur Python et je suis complètement confus par .join()
ce que j'ai lu est la méthode préférée pour concaténer des chaînes.
J'ai essayé:
strid = repr(595)
print array.array('c', random.sample(string.ascii_letters, 20 - len(strid)))
.tostring().join(strid)
et a obtenu quelque chose comme:
5wlfgALGbXOahekxSs9wlfgALGbXOahekxSs5
Pourquoi ça marche comme ça? Le 595
juste ne devrait-il pas être ajouté automatiquement?
Réponses:
Regardez attentivement votre sortie:
J'ai mis en évidence les "5", "9", "5" de votre chaîne d'origine. Le Python
join()
méthode est une méthode de chaîne et prend une liste d'éléments à joindre à la chaîne. Un exemple plus simple pourrait aider à expliquer:Le "," est inséré entre chaque élément de la liste donnée. Dans votre cas, votre "liste" est la représentation de chaîne "595", qui est traitée comme la liste ["5", "9", "5"].
Il semble que vous recherchiez
+
plutôt:la source
join
la propriété utile d'être l'inverse desplit
( docs.python.org/library/stdtypes.html#str.split )','.join(['a', 'b', 'c', ''])
donne "a, b, c,"string.join
de confusion avecos.path.join
ce qui concatène effectivement les cheminsjoin
prend une chose itérable comme argument. C'est généralement une liste. Le problème dans votre cas est qu'une chaîne est elle-même itérable, donnant à tour de rôle chaque caractère. Votre code se décompose comme suit:qui agit de la même manière que ceci:
et produit ainsi votre chaîne:
Les chaînes comme itérables sont l'un des problèmes de début les plus déroutants avec Python.
la source
Pour ajouter une chaîne, il suffit de la concaténer avec le
+
signe.Par exemple
join
relie les chaînes avec un séparateur. Le séparateur est ce que vous placez juste avant lejoin
. Par exempleJoin prend une liste de chaînes comme paramètre.
la source
join () sert à concaténer tous les éléments de la liste. Pour concaténer seulement deux chaînes "+" aurait plus de sens:
la source
Pour développer un peu plus ce que disent les autres, si vous vouliez utiliser join pour simplement concaténer vos deux chaînes, vous feriez ceci:
la source
Il y a une bonne explication des raisons pour lesquelles il est coûteux d'utiliser
+
pour concaténer un grand nombre de chaînes icila source
En fournissant cela comme entrée,
Python renvoie ceci en sortie:
la source
S'il s'agit d'une entrée, en utilisant la méthode JOIN, nous pouvons ajouter la distance entre les mots et également convertir la liste en chaîne.
Ceci est une sortie Python
la source
"" .join peut être utilisé pour copier la chaîne d'une liste dans une variable
la source