Ajout de chaîne Python

L’objet chaîne Python est immuable. Ainsi, chaque fois que nous utilisons l’opérateur + pour concaténer deux chaînes, une nouvelle chaîne est créée. Si nous devons ajouter de nombreuses chaînes, utiliser l’opérateur + créera inutilement de nombreuses chaînes temporaires avant d’obtenir le résultat final.

Ajout de chaîne Python

Examinons une fonction pour concaténer une chaîne ‘n’ fois.

def str_append(s, n):
    output = ''
    i = 0
    while i < n:
        output += s
        i = i + 1
    return output

Notez que je définis cette fonction pour illustrer l’utilisation de l’opérateur +. Je vais ensuite utiliser le module timeit pour tester les performances. Si vous souhaitez simplement concaténer une chaîne ‘n’ fois, vous pouvez le faire facilement en utilisant s = 'Salut' * 10.

Une autre manière d’effectuer une opération d’ajout de chaîne consiste à créer une liste et à y ajouter des chaînes. Ensuite, utilisez la fonction join() de la chaîne pour les fusionner afin d’obtenir la chaîne résultante.

def str_append_list_join(s, n):
    l1 = []
    i = 0
    while i < n:
        l1.append(s)
        i += 1
    return ''.join(l1)

Testons ces méthodes pour nous assurer qu’elles fonctionnent comme prévu.

if __name__ == "__main__":
    print('Append using + operator:', str_append('Hi', 10))
    print('Append using list and join():', str_append_list_join('Hi', 10))
    # utilisez ce qui suit pour ce cas, les méthodes ci-dessus sont créées afin que nous puissions
    # vérifier les performances à l'aide du module timeit
    print('Append using * operator:', 'Hi' * 10)

Sortie :

Append using + operator: HiHiHiHiHiHiHiHiHiHi
Append using list and join(): HiHiHiHiHiHiHiHiHiHi
Append using * operator: HiHiHiHiHiHiHiHiHiHi

La meilleure façon d’ajouter des chaînes en Python

I have both the methods defined in string_append.py file. Let’s use timeit module to check their performance.

$ python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append("Hello", 1000)' 
1000 loops, best of 5: 174 usec per loop
$ python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append_list_join("Hello", 1000)'
1000 loops, best of 5: 140 usec per loop

$ python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append("Hi", 1000)' 
1000 loops, best of 5: 165 usec per loop
$ python3.7 -m timeit --number 1000 --unit usec 'import string_append' 'string_append.str_append_list_join("Hi", 1000)'
1000 loops, best of 5: 139 usec per loop

Résumé

Si vous avez quelques chaînes, vous pouvez utiliser n’importe quelle méthode pour les ajouter. Du point de vue de la lisibilité, l’utilisation de l’opérateur + semble meilleure pour quelques chaînes. Cependant, si vous devez ajouter beaucoup de chaînes, vous devriez utiliser la liste et la fonction join().

Vous pouvez consulter le script Python complet et plus d’exemples Python sur notre Dépôt GitHub.

Source:
https://www.digitalocean.com/community/tutorials/python-string-append