הוספת מחרוזת בפייתון

האובייקט של מחרוזת ב-Python הוא לא ניתן לשינוי. לכן, בכל פעם שאנו משתמשים באופרטור + כדי לחבר שני מחרוזות, מחרוזת חדשה נוצרת. אם יש לנו צורך להוסיף הרבה מחרוזות, שימוש באופרטור + ייצור מיותר המחרוזות הזמניות לפני שנקבל את התוצאה הסופית.

הוספת מחרוזת ב-Python

בואו נסתכל על פונקציה לחיבור מחרוזת 'n' פעמים.

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

שימו לב שאני מגדיר פונקציה זו כדי להראות את שימושו של אופרטור +. אני אשתמש מאוחר יותר ב־מודול timeit כדי לבדוק את הביצועים. אם יש לכם פשוט צורך לחבר מחרוזת 'n' פעמים, תוכלו לעשות זאת בקלות על ידי s = 'שלום' * 10.

דרך נוספת לבצע פעולת הוספת מחרוזת היא על ידי יצירת רשימה והוספת מחרוזות לרשימה. לאחר מכן, ניתן להשתמש ב־פונקציית join של מחרוזת כדי למזג אותן יחד ולקבל את מחרוזת התוצאה.

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

בואו נבדוק את השיטות האלו כדי לוודא שהן עובדות כצפוי.

if __name__ == "__main__":
    print('Append using + operator:', str_append('Hi', 10))
    print('Append using list and join():', str_append_list_join('Hi', 10))
    # השתמשו בקוד הבא למקרה זה, השיטות למעלה נוצרו כך שנוכל
    # לבדוק את הביצועים באמצעות מודול timeit
    print('Append using * operator:', 'Hi' * 10)

פלט:

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

דרך הטובה ביותר להוסיף מחרוזות ב-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

סיכום

אם יש מספר קטן של מחרוזות, אז תוכל להשתמש בכל שיטה להוספתן. מנקודת מבט קריאות, שימוש באופרטור + נראה יותר טוב עבור מספר קטן של מחרוזות. אולם, אם עליך להוסיף הרבה מחרוזות, עליך להשתמש ברשימה ובפונקציית join().

תוכל לבדוק סקריפט Python מלא ועוד דוגמאות ב-Python מה-מאגר GitHub שלנו.

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