Est-il possible d'ajouter une chaîne à la fin d'une chaîne en python? par exemple.créer une chaîne à partir de deux en python
String1 = 'A' String2 = 'B'
et je veux String3 == 'AB'
Est-il possible d'ajouter une chaîne à la fin d'une chaîne en python? par exemple.créer une chaîne à partir de deux en python
String1 = 'A' String2 = 'B'
et je veux String3 == 'AB'
concaténation de chaîne en python est simple
a = "A"
b = "B"
c = a + b
print c
> AB
Je benchmarkée les trois opérations , effectuant 1m de chaque:
c = a + b
c = '%s%s' % (a,b)
c = "{0}{1}".format(a, b)
Et le résultat s sont:
+: 0.232225275772
%s: 0.42436670365
{}: 0.683854960343
Même avec 500 chaînes de caractères, + est encore de loin le plus rapide. Mes script is on ideone et les résultats (pour 500 chaînes de char) sont:
+: 0.82
%s: 1.54
{}: 2.03
Vous pouvez utiliser la version la plus simple: String3 = String1 + String2
ou l'opérateur de format (dépréciée en python3): String3 = '%s%s' % (String1, String2)
En Python, les + concatène opérateur cordes:
>>> String3 = String1 + String2
>>> String3
'AB'
Ceci est la manière la plus simple et habituellement c'est le bon choix. Cependant, vous aurez parfois besoin de plus de efficient string concatenation.
Vous pouvez également essayer str.join():
>>>s1='a'
>>>s2='b'
>>>s3=''.join((s1,s2))
>>>s3
'ab'
aussi si vous écrivez:
>>>s3='WhatEver'.join((s1,s2))
>>>s3
'aWhatEverb'
Pour simplifier lorsque la vitesse n'a pas d'importance, vous ne pouvez pas battre la facilité de c=a+b
. Si la vitesse compte (parce que vous faites un grand nombre de concaténations successives, par exemple), str.join()
can be a little more efficient (code at ideone).
+: 2.51
''.join([a,...z]): 0.2
append(): 2.05
D'après ce que je peux dire, si vous faites concaténations successives sans toucher le produit intermédiaire, je suis mieux chaque ajout annexant à une liste, puis de rejoindre tout à la fois. Pour le cas de concaténation simple, a+b
est toujours plus rapide que a.join(b)
Et j'ai toujours pensé que la concaténation de chaînes avec signe + était lente. Peut-être parce que les cordes sont trop courtes? –
Peut-être, j'ai téléchargé mon script sur Ideone, où les résultats sont encore plus prononcés: http://ideone.com/a6JMi – fredley
Je ne savais pas que la méthode .format était plus lente que la méthode% de mise en forme. Je pensais que .format était la méthode préférée. Est-ce que c'est toujours plus lent? – Curious2learn