آموزش

چگونه یک رشته رو در پایتون Trim کنیم

مفاهیم پایه‌ای حذف کاراکترهای اضافی از ابتدا و انتهای یک رشته در پایتون رو یاد بگیر.

تاریخ انتشار:
24 شهریور 1405
پایتون
6 دقیقه
کاربرهای فینکا در چه شرکت‌هایی مشغول به کار هستند؟

حذف فاصله‌ها یا همون Trimming، یکی از کارهای پایه‌ای موقع کار با داده‌های متنی در پایتونه؛ مخصوصاً در مرحلهٔ پاک‌سازی و آماده‌سازی داده‌ها در پروژه‌های علم داده. این کار کمک می‌کنه کاراکترهای اضافی (مثل فاصله‌های خالی) از اول و آخر رشته‌ها پاک بشن تا داده‌هاتون یکدست‌تر و برای تحلیل آماده‌تر بشن.

در این آموزش، سه متد اصلی برای Trim کردن رشته‌ها در پایتون، یعنی .strip()، .lstrip() و .rstrip() رو یاد می‌گیری و با بررسی چندتا مثال کاربردی، متوجه می‌شی که در دنیای واقعی چقدر به درد می‌خورن.

۳ روش برای Trim کردن یک رشته در پایتون

پایتون متدهای داخلی خیلی خوبی برای Trim کردن رشته‌ها داره که کار پاک‌سازی و پیش‌پردازش متن‌ها رو حسابی راحت می‌کنه. این متدها عبارتند از:

  • .strip(): کاراکترهای اضافی (که پیش‌فرضش فاصله‌های خالیه) رو از اول و آخر رشته پاک می‌کنه.
  • .lstrip(): کاراکترهای اضافی (پیش‌فرض: فاصله‌های خالی) رو از سمت چپ یا همون اول رشته حذف می‌کنه.
  • .rstrip(): کاراکترهای اضافی (پیش‌فرض: فاصله‌های خالی) رو از سمت راست یا همون آخر رشته برمی‌داره.

یادگیری این متدها بهت کمک می‌کنه ویرایش و آماده‌سازی متن رو خیلی بهتر انجام بدی؛ مهارتی که برای هر کاری در علم داده که به متن ربط داره، از نون شب واجب‌تره.

۱. حذف فاصله‌های خالی اول و آخر رشته در پایتون با ()strip.

متد .strip() دقیقاً برای پاک کردن کاراکترهای اضافی از هر دو طرف (اول و آخر) یک رشته ساخته شده و بیشتر هم برای حذف فاصله‌های خالی به کار می‌ره. در ادامه می‌بینیم که وقتی این متد رو روی رشتهٔ " I love learning Python! " اجرا می‌کنیم، چی می‌شه.

خروجی
 # Output: "I love learning Python!"

این متد مخصوصاً برای یکدست کردن رشته‌هایی که ممکنه در اول و آخرشون به تعداد متفاوتی فاصله داشته باشن، خیلی به درد می‌خوره.

۲. حذف فاصله‌های خالی اول رشته در پایتون با ()lstrip.

متد .lstrip() میره سراغ سمت چپ رشته و کاراکترهای اولیه رو پاک می‌کنه. پیش‌فرضِ این متد هم حذف فاصله‌های خالیه، اما می‌تونی مشخص کنی که کاراکترهای خاصی رو برات پاک کنه. اینجا متد .lstrip() رو روی همون رشتهٔ " I love learning Python! " در مثال قبلی امتحان کردیم:

خروجی
# Output: "I love learning Python!   "

متد .lstrip() دقیقاً همون‌جایی به کار میاد که می‌خوای رشته‌هایی که با فاصله‌ها یا کاراکترهای اضافی شروع می‌شن رو تمیز کنی؛ مثلاً در لیستی از اسم‌ها یا داده‌های طبقه‌بندی شده.

۳. حذف فاصله‌های خالی آخر رشته در پایتون با ()rstrip.

متد .rstrip() دقیقاً برعکس .lstrip() عمل می‌کنه و کاراکترهای اضافی رو از سمت راست یا همون آخر رشته پاک می‌کنه. در این متد هم می‌تونی مشخص کنی دقیقاً چه کاراکترهایی باید حذف بشن. اینجا همون مثال بالا رو با این متد اجرا کردیم:

خروجی
# Output: "   I love learning Python!"

وقتی از .rstrip() استفاده کن که با رشته‌هایی سروکار داری که در آخرشون فاصله یا کاراکترهای اضافه‌ای مثل علائم نگارشی وجود داره.

حذف کاراکترهای خاص از یک رشته در پایتون

متدهای Trim کردن در پایتون این قابلیت رو دارن که بهشون بگی دقیقاً چه کاراکترهایی رو از اول و آخر رشته‌ها پاک کنن. این ویژگی باعث می‌شه متدهای .strip()، .lstrip() و .rstrip() خیلی منعطف‌تر بشن و بتونی پاک‌سازی متن‌ها رو دقیق‌تر انجام بدی.

اما همون‌طور که در مثال‌ها می‌بینیم، باید حواست باشه که این متدها محدودیت‌هایی هم دارن؛ مثلاً نمی‌تونن کاراکترها رو از وسط رشته پاک کنن یا الگوهای پیچیده رو تشخیص بدن. برای کارهای پیشرفته‌تر، رجکس‌ها راه‌حل خیلی بهتری محسوب می‌شن.

حذف کاراکترهای خاص از رشته در پایتون با ()strip.

اول از متد .strip() شروع می‌کنیم. این متد رو می‌شه طوری تنظیم کرد که علاوه بر فاصله‌ها، کاراکترهای خاصی رو هم از دو طرف رشته پاک کنه. بیا یک مثال ببینیم:

خروجی
# Output: "I love learning Python"

حالا فرض کن رشتهٔ ما این شکلیه: "xxxyyy I love learning Python xxxyyy". چون ”xxx” و ”yyy” در دو طرف رشته تکرار شدن، می‌تونی کاراکترهای xy رو به عنوان هدف به متد Strip بدی تا هر دو رو برات پاک کنه. بیا نتیجه رو در عمل ببینیم!

خروجی
# Output: " I love learning Python "

همون‌طور که قبلاً اشاره کردم، یادت باشه که .strip() نمی‌تونه کاراکترها رو از وسط رشته پاک کنه. مثلاً اگه متنی که می‌خوایم Trim کنیم "!!!I love learning!!! Python!!!" باشه، خروجی متد فقط ”I love learning!!! Python” می‌شه و به وسط رشته کاری نداره. برای کارهای پیچیده‌تر، بهتره جای متدهای Strip که اینجا یاد گرفتیم، بری سراغ رجکس.

حذف کاراکترهای خاص از رشته در پایتون با ()lstrip. و ()rstrip.

همین قانون برای متدهای .lstrip() و .rstrip() هم برقراره. در ادامه می‌تونی مثال‌هایی از حذف کاراکترهای خاص از اول و آخر رشته رو با این دو تا متد ببینی:

خروجی
# Output: "I love learning Python!!!"

علاوه بر این، تکنیکِ حذف چند کاراکتر رو می‌تونی روی .lstrip() و .rstrip() هم پیاده کنی.

خروجی
# Output: "!!!I love learning Python"

متدهای جدید Trim کردن رشته در پایتون ۳.۹

در پایتون ۳.۹ دو متد str.removeprefix() و str.removesuffix() معرفی شدن که دقیقاً برای پاک کردن پیشوندها یا پسوندهای خاص به کار می‌رن.

حذف پیشوند با متد ()removeprefix

خروجی
# Output: " I love learning Python xxxyyy"

حذف پسوند با متد ()removesuffix

خروجی
# Output: "xxxyyy I love learning Python"

نکاتی دربارهٔ عملکرد متدهای Trim

وقتی با دیتاست‌های بزرگ سروکار داری، خیلی مهمه که عملیات Trim کردن بهینه‌ باشه. متدهای .strip()، .lstrip() و .rstrip() با پیچیدگی زمانی O(n) اجرا می‌شن؛ اما برای دیتاست‌های خیلی حجیم، استفاده از عملیات‌های برداری در Pandas می‌تونه خیلی سریع‌تر و کارآمدتر باشه:

نتیجه‌گیری

برای اینکه بتونی در پایتون کدهای بهتر و تمیزتری بنویسی، درک نحوهٔ Trim کردن و کار با رشته‌ها کاملاً واجبه. با اینکه متدهای .strip()، .lstrip() و .rstrip() برای نیازهای اولیه عالی هستن، اما در سناریوهای پیچیده‌تر احتمالاً مجبوری بری سراغ رجکس. اگه دوست داری بیشتر یاد بگیری، می‌تونی یادگیری رو با مسیر مهارتی پردازش زبان طبیعی در پایتون در فینکا شروع کنی.

اشتراک‌گذاری
فهرست مطالب
  • ۳ روش برای Trim کردن یک رشته در پایتون
  • حذف کاراکترهای خاص از یک رشته در پایتون
  • متدهای جدید Trim کردن رشته در پایتون ۳.۹
  • نکاتی دربارهٔ عملکرد متدهای Trim
  • نتیجه‌گیری

سوالات متداول در مورد Trim کردن

آره، می‌تونی کاراکترهای عددی رو برای حذف شدن مشخص کنی. مثلاً:

text = "12345Python12345"
trimmed_text = text.strip('12345')
print(trimmed_text)  # Output: "Python"

به‌طور پیش‌فرض، این متدها همهٔ انواع فاصله‌ها مثل اسپیس، تب (t\) و خطوط جدید (n\) رو پاک می‌کنن. مثلاً:

text = "\t\n  Python Programming  \n\t"
trimmed_text = text.strip()
print(trimmed_text)  # Output: "Python Programming"

اگه این متدها رو روی یک رشتهٔ خالی اجرا کنی، بدون اینکه خطایی بدن، همون رشتهٔ خالی رو برمی‌گردونن. مثلاً:

text = ""
trimmed_text = text.strip()
print(trimmed_text)  # Output: ""

دریافت اپلیکیشن فینکا

با اپلیکیشن فینکا، به بیشتر دوره‌ها و مسیرها روی موبایل دسترسی دارید، تمرین می‌کنید و یادگیری رو هم‌زمان روی موبایل و دسکتاپ ادامه می‌دید.