Како заменити знак у стрингу користећи Питхон

Овај водич покрива различите начине замене карактера у Питхон стрингу: коришћењем уграђених метода стрингова, регуларних израза и још много тога.

Стрингови у Питхон-у су уграђене структуре података које чувају низ Уницоде знакова. За разлику од неких Питхон структура података, као што су листе и речници, стрингови су непроменљиви. То значи да не можете да мењате постојећи стринг.

Међутим, можда ћете желети да манипулишете стринговима—уклоните беле размаке на почетку и на крају, промените велика слова, замените знак другим и још много тога—када радите са њима.

Дакле, како да манипулишемо Питхон стринговима? А како да заменимо карактер у Питхон стрингу? Одговорићемо на ова питања у овом водичу фокусирајући се на:

  • Непроменљивост Питхон стрингова
  • Питхон методе стрингова за манипулацију стринговима
  • Различити начини замене карактера у низу

Хајде да почнемо…

Непроменљивост Питхон стрингова

Као што је поменуто, Питхон стрингови су непроменљиви. Дакле, не можете да мењате постојећи стринг на месту. не можете да мењате постојећи стринг на месту

На пример, размотрите стринг „Питхон програмирање!“.

Можете приступити једном елементу стринга користећи индекс и подниз тако што ћете навести исечак са почетком и крајем, као што је приказано:

>>> my_str = "Python programming!"
>>> my_str[0]
'P'
>>> my_str[4]
'o'
>>> my_str[1:9]
'ython pr'
>>> my_str[9]
'o'

Рецимо да желите да замените слово ‘о’ цифром ‘0’.

Знате да имате о на индексима 4 и 9 (погледајте исечак кода изнад). Али ако покушате директно да поставите знак — на одређеном индексу — на „0“, добићете следећу грешку:

>>> my_str[4] = '0'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

Питхон обезбеђује скуп метода стрингова који делују на постојећи стринг и враћају нови стринг са потребним изменама.

Такође прочитајте: Питхон програми на стринг операцијама.

Дакле, можете користити методе стрингова заједно са разумевањем листе, петљама и регуларним изразима за обављање задатака манипулације стринговима. У овом водичу ћемо погледати различите начине замене карактера у Питхон стрингу.

  Играјте Бога док насељавате Земљу животињама [Paid]

Замена знака у Питхон стринговима

Постоји много случајева употребе у којима ћете можда желети да замените знакове или подстрингове у Питхон стрингу. Ево неких од њих:

  • Чишћење текста: Када радите са текстуалним подацима, можда ћете морати да очистите текст заменом одређених знакова. На пример, уклањање или замена специјалних знакова, додатног белог простора или нежељених симбола.
  • Форматирање: Можда ћете желети да промените форматирање текста, као што је писање великих слова или претварање текста у мала слова. На пример, обезбеђивање доследног писања великих слова у насловима или насловима.
  • Маскирање података: Често ћете морати да маскирате осетљиве информације као што су лични идентификациони бројеви или бројеви кредитних картица да бисте заштитили осетљиве податке уз очување формата.
  • УРЛ-ови и руковање путањама: Када радите са УРЛ адресама или путањама датотека, можда ћете морати да замените одређене знакове да бисте били сигурни да су правилно форматирани и компатибилни са веб прегледачима или системима датотека.

Узећемо једноставан пример замене карактера у низу.

Почећемо са приступом који користи петље и условне наредбе, а затим прећи на дискусију о другим бољим методама за постизање истог.

Узмимо исти пример замене ‘о’ са ‘0’ у низу „Питхон програмирање!“.

Ево како можемо да прођемо кроз низ користећи фор петљу и заменимо одређени карактер:

original_string = "Python programming!"
new_string = ""
for char in original_string:
    if char == "o":
        new_string += "0"
    else:
        new_string += char
print(new_string)  

У овом приступу, ми ручно пролазимо кроз сваки знак у оригинал_стринг. Ако је знак ‘о’, додајемо ‘0’ новом_стрингу; у супротном, додајемо исти знак. На овај начин вршимо замену карактера и правимо нев_стринг.

# Output
Pyth0n pr0gramming!

Коришћење фор петље и условног гранања са иф наредбама је тешко одржавати. Нарочито када треба да замените подниз или више знакова.

Постоје бољи приступи замени знакова или подниза, а ми ћемо их погледати у следећим одељцима.

#1. Коришћење стр.реплаце()

Можемо користити метод стринг реплаце() да заменимо знак или подниз другим стрингом. Коришћење стр.реплаце(олд, нев) замењује сва појављивања старог знака или подниза новим карактером или поднизом.

  Како приступити блокираним веб локацијама на рачунару или мобилном уређају

Овде користимо слово ‘о’ методе реплаце() са цифром ‘0’ у оригинал_стрингу.

original_string = "Python programming!"
new_string = original_string.replace("o", "0")
print(new_string) 

Резултирајући стринг је у нев_стринг.

# Output
Pyth0n pr0gramming!

#2. Коришћење разумевања листе и метода јоин().

Да бисмо заменили карактер у Питхон стрингу, можемо да користимо разумевање листе у вези са методом стринга јоин().

Хајде да видимо како можемо да препишемо наш пример:

  • Можемо да користимо разумевање листе за понављање сваког знака у оригинал_стринг. Ако је знак ‘о’, замењујемо га са ‘0’ и задржавамо исти знак у супротном.
  • Затим користимо стр.јоин() да комбинујемо ове знакове у један стринг, што резултира новим_стрингом. Имајте на уму да је ово сажетија алтернатива петљи и условном гранању када треба да замените један знак у низу.
original_string = "Python programming!"
new_string = ''.join(['0' if char == 'o' else char for char in original_string])
print(new_string) 

Добијамо очекивани излаз:

# Output
Pyth0n pr0gramming!

#3. Коришћење регуларних израза

Други метод за замену знакова у Питхон стринговима је коришћење регуларних израза (регек). Питхон долази са уграђеним ре модул за операције подударања регуларних израза. Помоћу регуларног израза можете одредити образац за претрагу, стринг за претрагу и стринг којим ћете заменити одговарајући образац.

Овде користимо функцију суб() из ре модула са синтаксом ре.суб(узорак, замена, стринг).

import re

original_string = "Python programming!"
new_string = re.sub(r'o', '0', original_string)
print(new_string) 

Образац р’о’ одговара свим појављивањима слова ‘о’ у оригинал_стринг и замењује их са ‘0’.

# Output
Pyth0n pr0gramming!

Можете да користите регуларне изразе за подударање са сложенијим обрасцима. Узмимо пример маскирања бројева кредитних картица. Рецимо да желимо да заменимо све бројеве – осим последње четири цифре – са ‘Кс’. Ево како то можемо да урадимо:

import re

def mask_credit_card(card_number):
    # Use regular expressions to match and replace characters
    masked_number = re.sub(r'\d(?=\d{4})', 'X', card_number)
    return masked_number

# Example usage:
credit_card_number = "1234567898765432"
masked_number = mask_credit_card(credit_card_number)
print(masked_number)

А ево и излаза:

# Output
XXXXXXXXXXXX5432

Да би регуларни израз био једноставан, нисмо укључили цртицу, али ако желите можете да измените пример по потреби.

#4. Коришћење стр.макетранс() и стр.транслате()

Методе стр.макетранс() и стр.транслате() у Питхон-у се користе за превођење на нивоу знакова и замену у стринговима.

  Како инсталирати екстензије у ВЛЦ Плаиер

Како функционише стр.макетранс().

Макетранс() метода се користи за креирање табеле превода која специфицира како треба заменити знакове у низу. Можете га користити са синтаксом: стр.макетранс(к, и). овде:

  • к је низ који садржи знакове које желите да замените.
  • и је низ који садржи знакове којима желите да замените к.

Макетранс() метода генерише табелу превођења на основу пресликавања од к до и. Затим можете користити ову табелу превођења са методом стр.транслате() да извршите стварну замену.

Како функционише стр.транслате().

Можете користити метод стр.транслате() да примените табелу превођења коју креира стр.макетранс() на стринг. Он врши замену карактер по знак на основу пресликавања дефинисаних у табели превођења. И враћа нови стринг са примењеним заменама наведених знакова.

Ево како можете да користите метод транслате():

new_string = original_string.translate(translation_table)
  • оригинал_стринг: Улазни низ који желите да измените.
  • транслатион_табле: Табела превода креирана коришћењем стр.макетранс() која дефинише пресликавања знакова.

Комбинујући методе макетранс() и стр.транслате(), хајде да препишемо наш пример овако:

original_string = "Python programming!"
translation_table = str.maketrans('o', '0')
new_string = original_string.translate(translation_table)
print(new_string)

Овде креирамо табелу превођења користећи стр.макетранс(‘о’, ‘0’) да наведемо да ‘о’ треба заменити са ‘0’. Затим користимо метод транслате() на оригинал_стринг да применимо овај превод, што резултира новим_стрингом.

# Output
Pyth0n pr0gramming!

Ове методе су корисне за задатке као што су замена карактера и друге манипулације на нивоу знакова у стринговима.

Закључак

Хајде да поновимо шта смо научили.

Питхон стрингови су непроменљиви. Дакле, када желите да замените знак у Питхон стрингу, не можете само да поново доделите карактер одређеном индексу. Прегледали смо следеће приступе да заменимо карактер или више знакова у Питхон стрингу:

  • Користите стр.реплаце(олд, нев) да замените све инстанце старог новим подстрингом.
  • Такође можете да користите разумевање листе и метод јоин(). Користите разумевање листе да бисте постигли замену карактера и метод јоин() да бисте спојили листу знакова у стринг.
  • Можете користити подударање шаблона са регуларним изразима да бисте заменили појављивања карактера или обрасца. Користите функцију суб() са ре.суб(образац, замена, стринг).
  • Користите стр.макетранс() да добијете табелу превођења и транслате() метод да примените табелу превођења на оригинални стринг.

Обавезно кодирајте неке примере да бисте боље разумели ове технике. Затим научите како да уклоните последњи знак из Питхон стринга.