از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
راهنمای روش strip() Python
سرفصلهای مطلب
معرفی
دستکاری رشته در پایتون از طریق مجموعه ای از متدهای داخلی انجام می شود که رشته های جدید را از آنجایی که تغییرناپذیر هستند برمی گرداند. در این راهنما، ما به روشهایی برای حذف فضای سفید (در زبانهای دیگر به عنوان trimming نیز شناخته میشود) از رشتهها در پایتون نگاه خواهیم کرد.
روش های برش – نوار ()
در پایتون، روشهای stripping میتوانند فضاهای پیشرو و انتهایی و کاراکترهای خاص را حذف کنند. فضاهای پیشرو و انتهایی شامل فضاهای خالی، زبانه ها (\t
، بازگشت کالسکه (\r
، \n
) و دیگر کاراکترهای فضای سفید کمتر شناخته شده ای که می توان یافت اینجا.
سه روش وجود دارد که از طریق آنها می توان فاصله ها یا کاراکترهای خاص را از رشته ها حذف کرد:
strip(chars)
– روش نوار وانیلی هر دو سمت چپ و راست رشته فضاهای سفید یا کاراکترهای ذکر شده را نوار می کند.lstrip(chars)
– “l” در نام متد با سمت چپ مطابقت دارد و این روش فضاهای سفید یا کاراکترهای ذکر شده در سمت چپ رشته ورودی را حذف می کند.rstrip(chars)
– r در نام متد با درست مطابقت دارد، و درست حدس زدید – کاراکترها را در سمت راست رشته ورودی حذف می کند.
اگر قرار است کاراکترها از رشته حذف شوند، باید به عنوان آرگومان به متد ارسال شوند input.rstrip("abc")
. این یک آرگومان اختیاری است، بهطور پیشفرض توابع فضای سفید را حذف میکنند، زیرا رایجترین کاربرد آن است.
برش/برداشتن فضای سفید از رشته ها
اکنون که متوجه شدیم این روش ها چه توانایی هایی دارند، بیایید به چند نمونه بپردازیم. ما یک input
و output
رشته این input
متغیر یک رشته را با فاصله های انتهایی و پیشرو نشان می دهد، در حالی که output
رشته الگویی است که می توانیم از آن برای برجسته کردن این فضاها استفاده کنیم:
input = " رسانگار "
output = "|{}|"
print("lstrip() Output:", output.format(input.lstrip()))
print("rstrip() Output:", output.format(input.rstrip()))
print(" strip() Output:", output.format(input.strip()))
یک بار ما strip()
را input
و آن نتیجه را بین لوله ها اضافه کنید (|
)، هر فضای خالی باقی مانده بسیار قابل توجه خواهد بود.
اجرای این کد نتیجه می دهد:
$ python trim.py
lstrip() Output: |رسانگار |
rstrip() Output: | رسانگار|
strip() Output: |رسانگار|
پیرایش/برداشتن کاراکترهای خاص از رشته ها
به جای حذف فقط کاراکترهای خالی، حذف یک شخصیت خاص دنباله دار و پیشرو غیر معمول نیست. اجازه دهید در یک استدلال شخصیت به strip()
روش:
input = " ~~ رسانگار ~~ "
output = "|{}|"
print("lstrip() Output:", output.format(input.lstrip("~ ")))
print("rstrip() Output:", output.format(input.rstrip("~ ")))
print(" strip() Output:", output.format(input.strip("~ ")))
ما از tilde و همچنین یک فضای سفید عبور کرده ایم (“~
“) به عنوان استدلال از strip()
روشها، حذف هر یک از آنها از سمت چپ، راست و هر دو طرف رشته. شایان ذکر است که ترتیب اینها مهم نیست و strip()
روش برای حذف این موارد تطبیق الگو را انجام نمی دهد. از نظر مفهومی شبیه به فراخوانی است strip()
روش دو بار، برای هر کاراکتر.
اجرای این کد نتیجه می دهد:
$ python trim_chars.py
lstrip() Output: |رسانگار ~~ |
rstrip() Output: | ~~ رسانگار|
strip() Output: |رسانگار|
استفاده کردن نوار () روی سری پانداها
ما همچنین می توانیم انجام دهیم strip()
روش هایی برای پانداها Series
. فضاهای دنباله دار و شخصیت ها برای سلول های مجزای مجموعه را می توان از بین برد. نکته ای که باید به آن توجه داشت این است که قبل از اجرای این سری باید به یک سری رشته تبدیل شود strip()
عمل.
توجه داشته باشید: اگر تازه وارد پانداها شده اید، راهنمای مبتدیان ما برای پانداها را بخوانید تا درباره کتابخانه و روش راه اندازی آن بیشتر بدانید. هنگامی که پانداها در سیستم شما نصب شد، می توانید با این مثال کد را دنبال کنید!
اسکریپت زیر را در نظر بگیرید:
import pandas as pd
s = pd.Series(('1. Cell1. ~', '2. Cell2!\n'))
print("Before strip():\n", s)
print("\nAfter strip():\n", s.str.strip('.\n!~ '))
در اینجا، ما یک سری با سلول های حاوی کاراکترهای خاص و فضاهای دنباله ایجاد می کنیم. از طریق series.str
، می توانیم روشی را انجام دهیم روی هر عنصر از سری. با توجه به اینکه اینها رشته ای هستند، می توانیم هر متد رشته ای را اجرا کنیم.
همانطور که گفته شد، ما به راحتی می توانیم a را انجام دهیم strip()
روی هر عنصر دنباله:
$ python strip_series.py
Before strip()
0 1. Cell1. ~
1 2. Cell2!\n
dtype: object
After strip()
0 1. Cell1
1 2. Cell2
dtype: object
نتیجه
حذف (یا برش) کاراکترها از یک رشته می تواند هنگام تمیز کردن مجموعه داده ها، فایل های متنی با چندین خط یا حتی پاسخ های API بسیار مفید باشد. روش های اساسی اما قدرتمند پایتون حتی می توانند کار کنند روی سری پانداها هم همینطور.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-10 01:43:43