במאמר זה, נדון כיצד להחליף שני תווים במחרוזת. ישנן גישות שונות שיעזרו להבין כיצד אנו יכולים להחליף שני תווים במחרוזת.
גישה 1: שימוש בשיטת list() ו-join()
אם ברצוננו להחליף שני תווים במחרוזת, נוכל להשתמש ב- רשימה() ו לְהִצְטַרֵף() שיטה.
דוגמא:
string compare ב-java
# Input string string = 'hello world' # Convert string to list of characters char_list = list(string) # Swap characters at index 2 and index 6 char_list[2], char_list[6] = char_list[6], char_list[2] # Convert list back to string new_string = ''.join(char_list) # Output new string print(new_string)
תְפוּקָה:
hewlo lorld
הֶסבֵּר:
בקוד שלמעלה, תחילה נגדיר את מחרוזת הקלט בתור 'שלום עולם' . לאחר מכן, אנו ממירים את המחרוזת לרשימת תווים באמצעות ה- רשימה() שיטה. לאחר מכן, אנו משתמשים פירוק טופל כדי להחליף את הדמויות ב אינדקס 2 ו אינדקס 6 ברשימה. לבסוף, אנו ממירים את הרשימה בחזרה למחרוזת באמצעות ה לְהִצְטַרֵף() שיטה ופלט את המחרוזת החדשה
גישה 2: שימוש בחיתוך ובשרשור
אם ברצוננו להחליף שני תווים במחרוזת, נוכל להשתמש ב- פִּלוּחַ ו שִׁרשׁוּר שיטה.
דוגמא:
# Input string string = 'hello world' # Swap characters at index 2 and index 6 new_string = string[:2] + string[6] + string[3:6] + string[2] + string[7:] # Output new string print(new_string)
תְפוּקָה:
hewlo lorld
הסבר:
בגישה זו אנו משתמשים חיתוך חוטים ו שִׁרשׁוּר כדי להחליף את הדמויות. אנו פורסים את החוט לארבעה חלקים: ה מחרוזת משנה לפני הדמות הראשונה שיש להחליף (מחרוזת[:2]) , הדמות הראשונה שהוחלפה (מחרוזת[6]) , המחרוזת המשנה בין התווים שהוחלפו (מחרוזת[3:6]) , הדמות השנייה שהוחלפה (מחרוזת[2]) , ואת המחרוזת המשנה אחרי התו השני שהוחלף (מחרוזת[7:]) . לאחר מכן, אנו משרשרים את המחרוזות הללו בסדר הרצוי ליצירת המחרוזת החדשה.
גישה 3: שימוש בהבנת רשימה
אם ברצוננו להחליף שני תווים במחרוזת, נוכל להשתמש ב- הבנת רשימה שיטה.
דוגמא:
# Input string string = 'hello world' # Swap characters at index 2 and index 6 char_list = [string[i] if i not in (2, 6) else string[6 if i == 2 else 2] for i in range(len(string))] # Convert list back to string new_string = ''.join(char_list) # Output new string print(new_string)
תְפוּקָה:
hewlo lorld
הֶסבֵּר:
בגישה זו, אנו יוצרים רשימה של תווים באמצעות הבנת הרשימה החוזרת על פני המדדים של מחרוזת הקלט. אנו משתמשים בביטוי מותנה בתוך הבנת הרשימה כדי להחליף את התווים ב אינדקס 2 ו אינדקס 6 .
הביטוי string[6 if i == 2 else 2] מחזיר את התו ב אינדקס 6 אם המדד הנוכחי הוא 2 , ומחזיר את התו ב אינדקס 2 אם המדד הנוכחי הוא 6 . אחרת, הוא מחזיר את התו המקורי באינדקס הנוכחי. לאחר מכן, אנו ממירים את רשימת התווים בחזרה למחרוזת באמצעות ה- שיטת join(). ופלט את המחרוזת החדשה.
גישה זו עשויה להיות פחות יעילה מהגישות הקודמות מכיוון שהיא יוצרת רשימה חדשה של תווים, אך היא עשויה להיות שימושית במצבים שבהם הבנת הרשימה נוחה או אינטואיטיבית יותר לשימוש.
גישה 4: שימוש בסוג 'bytearray' מובנה
אם ברצוננו להחליף שני תווים במחרוזת, נוכל להשתמש ב- bytearray שיטה.
דוגמא:
# Input string string = 'hello world' # Convert string to bytearray byte_array = bytearray(string, 'utf-8') # Swap characters at index 2 and index 6 byte_array[2], byte_array[6] = byte_array[6], byte_array[2] # Convert bytearray back to string new_string = byte_array.decode() # Output new string print(new_string)
תְפוּקָה:
hewlo lorld
הֶסבֵּר:
בגישה זו, אנו ממירים תחילה את מחרוזת הקלט ל-a bytearray משתמש ב bytearray() פונקציה מובנית. לאחר מכן, אנו מציינים את 'utf-8' קידוד כדי להמיר את המחרוזת לבייט, ואז נחליף את שני התווים ב אינדקס 2 ו אינדקס 6 על ידי גישה ישירה לאלמנטים המתאימים ב- bytearray . לבסוף, אנו ממירים את ה bytearray חזרה למחרוזת באמצעות ה- לְפַעֲנֵחַ() שיטה ופלט את המחרוזת החדשה.
גישה זו יעילה מכיוון שהיא משתמשת ב- מערך בייטים ניתן לשינוי במקום ליצור מחרוזת או רשימה חדשה.