Python String Toevoegen

Python-stringobject is onveranderlijk. Dus telkens wanneer we de + operator gebruiken om twee strings samen te voegen, wordt een nieuwe string gemaakt. Als we veel strings moeten toevoegen, zal het gebruik van de + operator onnodig veel tijdelijke strings creëren voordat we het uiteindelijke resultaat hebben.

Python String Toevoegen

Laten we eens kijken naar een functie om een ​​string ‘n’ keer samen te voegen.

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

Merk op dat ik deze functie definieer om het gebruik van de + operator te illustreren. Ik zal later de timeit-module gebruiken om de prestaties te testen. Als je gewoon een string ‘n’ keer wilt samenstellen, kun je dat eenvoudig doen met s = 'Hi' * 10.

Een andere manier om een string toe te voegen, is door een lijst te maken en strings aan de lijst toe te voegen. Gebruik vervolgens de string join() functie om ze samen te voegen tot de resulterende string.

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

Laten we deze methoden testen om ervoor te zorgen dat ze zoals verwacht werken.

if __name__ == "__main__":
    print('Append using + operator:', str_append('Hi', 10))
    print('Append using list and join():', str_append_list_join('Hi', 10))
    # gebruik hieronder voor dit geval, bovenstaande methoden zijn gemaakt zodat we
    # de prestaties kunnen controleren met behulp van de timeit-module
    print('Append using * operator:', 'Hi' * 10)

Uitvoer:

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

Beste manier om strings toe te voegen in 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

Samenvatting

Als er maar een paar strings zijn, kun je elke methode gebruiken om ze toe te voegen. Vanuit leesbaarheidsoogpunt lijkt het gebruik van de + operator beter voor enkele strings. Als je echter veel strings moet toevoegen, moet je de lijst en de join() functie gebruiken.

Je kunt het volledige Python-script en meer voorbeelden in Python bekijken op onze GitHub Repository.

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