آموزش پایتون - ویرایش رشته

تغییر رشته (String modification) به فرآیند تغییر کاراکترهای یک رشته اشاره دارد. وقتی در مورد تغییر یک رشته در پایتون صحبت می‌کنیم، در واقع منظورمان ایجاد یک رشته جدید است که نسخه‌ای تغییریافته از رشته اصلی است.

در پایتون، یک رشته (شیئی از کلاس str) از نوع تغییرناپذیر (immutable) است. در اینجا، تغییرناپذیر به شیئی اشاره دارد که پس از ایجاد در حافظه، نمی‌توان آن را در همان محل تغییر داد. برخلاف یک لیست، ما نمی‌توانیم هیچ کاراکتری را در دنباله بازنویسی کنیم و همچنین نمی‌توانیم کاراکترها را مستقیماً به آن اضافه یا جای‌گذاری کنیم. اگر نیاز به تغییر یک رشته داشته باشیم، از متدهای خاصی برای رشته‌ها استفاده می‌کنیم که یک شیء رشته‌ای جدید را برمی‌گردانند. با این حال، رشته اصلی دست‌نخورده باقی می‌ماند.

ما می‌توانیم از هر یک از ترفندهای زیر به عنوان یک راهکار برای تغییر یک رشته استفاده کنیم.

تبدیل رشته به لیست

از آنجا که هم رشته‌ها و هم لیست‌ها در پایتون از انواع دنباله‌ای هستند، قابل تبدیل به یکدیگر می‌باشند. بنابراین، می‌توانیم یک رشته را به لیست تبدیل کنیم، لیست را با استفاده از متدهایی مانند insert()، append() یا remove() تغییر دهیم و سپس لیست را دوباره به رشته تبدیل کنیم تا نسخه تغییریافته را به دست آوریم.

فرض کنید یک متغیر رشته‌ای s1 با مقدار WORD داریم و می‌خواهیم آن را به یک لیست تبدیل کنیم. برای این کار، می‌توانیم از تابع داخلی list() استفاده کرده و کاراکتر L را در اندیس 3 درج کنیم. سپس می‌توانیم تمام کاراکترها را با استفاده از متد join() از کلاس str به هم متصل کنیم.

مثال

مثال زیر به صورت عملی نحوه تبدیل یک رشته به لیست را نشان می‌دهد.

s1="WORD"
print ("original string:", s1)
l1=list(s1)

l1.insert(3,"L")

print (l1)

s1=''.join(l1)
print ("Modified string:", s1)

این کد خروجی زیر را تولید خواهد کرد −

original string: WORD
['W', 'O', 'R', 'L', 'D']
Modified string: WORLD

استفاده از ماژول Array

برای تغییر یک رشته، می‌توانید با استفاده از کتابخانه استاندارد پایتون به نام ماژول array یک شیء آرایه بسازید. این کار یک آرایه از نوع یونی‌کد (Unicode) از یک متغیر رشته‌ای ایجاد می‌کند.

مثال

در مثال زیر، از ماژول array برای تغییر رشته مشخص شده استفاده می‌کنیم.

import array as ar

# initializing a string
s1="WORD"
print ("original string:", s1)

# converting it to an array
sar=ar.array('u', s1)

# inserting an element
sar.insert(3,"L")

# getting back the modified string
s1=sar.tounicode()
print ("Modified string:", s1)

این کد خروجی زیر را تولید خواهد کرد −

original string: WORD
Modified string: WORLD

استفاده از کلاس StringIO

ماژول io در پایتون کلاس‌هایی را برای مدیریت جریان‌ها (streams) تعریف می‌کند. کلاس StringIO یک جریان متنی را با استفاده از یک بافر متنی در حافظه نشان می‌دهد. یک شیء StringIO که از یک رشته به دست می‌آید، مانند یک شیء فایل عمل می‌کند؛ بنابراین می‌توانیم عملیات خواندن و نوشتن را روی آن انجام دهیم. متد getvalue() از کلاس StringIO یک رشته را برمی‌گرداند.

مثال

اجازه دهید از اصل بررسی‌شده در بالا در برنامه زیر برای تغییر یک رشته استفاده کنیم.

import io

s1="WORD"
print ("original string:", s1)

sio=io.StringIO(s1)
sio.seek(3)
sio.write("LD")
s1=sio.getvalue()

print ("Modified string:", s1)

این کد خروجی زیر را تولید خواهد کرد −

original string: WORD
Modified string: WORLD

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.