پنج نکته برای بهینه‌تر نوشتن رشته‌ها در پایتون

آفلاین
user-avatar
ارسطو عباسی
04 مهر 1400, خواندن در 4 دقیقه

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

با این حال، با وجود سینتکس کوتاه و واضحی که پایتون ارائه می‌دهد، توسعه‌دهندگانی هستند که هنوز از برخی ویژگی‌های قدرتمند این زبان غافل هستند. غافل بودن از این ویژگی‌ها می‌تواند باعث آن شود که توسعه‌دهنگان از روش‌های غیر معقولی در فرایند برنامه‌نویسی استفاده کرده و با راهکارهای بهتر آشنایی نداشته باشند.

رشته‌ها (Strings) پراستفاده‌ترین نوع داده‌ای‌ست که برنامه‌نویسان با آن سر و کار دارند. حال فرقی ندارد چه شما برنامه‌نویس حرفه‌ای باشید و یا اینکه به تازگی کارتان را شروع کرده‌اید ممکن است در مورد برخی از تکنیک‌های معروف کوتاه‌نویسی در پایتون آشنایی نداشته باشید. چند مثال بسیار کاربردی از این تکنیک‌ها، تکنیک «جابجایی مکان عناصر‌ها» با استفاده از ویژگی‌ Destructuring و یا معکوس کردن یک رشته با استفاده از [1-:] خواهد بود.

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

تکنیک اول: جداسازی اعداد با استفاده از f-string

تا به حال شده که برای خوانایی بیشتر یک عدد طولانی بین هر سه رقم آن از سمت چپ یک کاما قرار دهید؟ بنظر نمی‌رسد که انجام این کار به صورت دستی در برنامه‌ها کار درستی باشد به همین دلیل نیاز به یک فرایند خودکارسازی داریم. با استفاده از ابزار قالب‌دهی متون (Text Formatting) به نام f-string این کار به سادگی زیر انجام می‌شود.

>>> a = 1000000
>>> print(f'{my_var:,}')
1,000,000

تکنیک دوم: تبدیل رشته به لیست

استفاده از روش‌های قدیمی برای ایجاد یک لیست پر از اعضاء را فراموش کنید. حال می‌توانید تنها با استفاده از تابع list() هر رشته‌ای را بصورت کاراکتر به کاراکتر به یک لیست تبدیل کنید. برای مثال به کدهای زیر توجه کنید:

my_list = list('ABC')

در کنار تابع list() یک تابع دیگر با نام split() وجود دارد که در فرایند ایجاد یک لیست با قابلیت سفارشی‌سازی به شما کمک می‌کند. برای مثال در کدهای زیر ما توانسته‌ایم با قدرت split() روی ساختار لیست تاثیر گذاشته و شکل جداکننده‌ها را تغییر دهیم.

>>> list2= list('AA BB C')
>>> list2

['A', 'A', ' ', 'B', 'B', ' ', 'C']

#using split()
>>> x = "AA BB C"
>>> list3 = x.split(" ")
>>> list3

['AA', 'BB', 'C']

تکنیک سوم: استفاده از نام‌های بهتر برای Placeholder

زمانی که از متد format یا ساختار f-string استفاده می‌کنید سعی کنید پیش از آن، از نام‌های درست و با مفهومی برای متغیرها و Placeholderهایی که قرار است در بین رشته‌ها قرار بگیرد استفاده کنید. یک ساختار درست برای انجام چنین کاری می‌تواند کدهای زیر باشد:

x = {'language': 'Python', 'feature': 'match statement'}
>>> print('{language} {feature} is amazing.'.format(**x))

Python match statement is amazing.

در ساختار بالا جدای از انتخاب درست نام‌ها، از یک ساختار داده‌ای «دیکشنری» درست نیز برای تعداد Placeholderهای مرتبط به همدیگر استفاده شده است.

تکنیک چهارم: فیلتر کردن محتوا با استفاده از تابع join

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

>>> x = "BTC is $48000.12"
>>> x = ''.join([c for c in x if c in '1234567890.'])
>>> x

'48000.12'

تکنیک پنجم: جداسازی محتوای یک رشته براساس یک کاراکتر خاص

اگر از یک الگوی خاص برای جداسازی قسمت‌های مختلف درون یک رشته استفاده می‌شود، ما به سادگی می‌توانیم چنین رشته‌ای را به قسمت‌های جدا شدنی تقسیم کنیم. برای انجام چنین کاری نیاز به متدی به نام partition خواهیم داشت.

ما در مثال زیر قطعه کدی را ایجاد کرده‌ایم که می‌توانید زیردامنه هر وبسایتی را برگرداند.

>>> x = "mail.google.com"
>>> x.partition(".")
('mail', '.', 'google.com')
>>> x.partition(".")[0]
'mail'

متد partition برای نگهداری اطلاعات جدا شده از رشته، از ساختار داده‌ای tuple استفاده می‌کند.

در پایان

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

چه امتیازی به این مقاله می دید؟
خیلی بد
بد
متوسط
خوب
عالی

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

آفلاین
user-avatar
ارسطو عباسی @arastoo
برنامه‌نویس و مدیر بخش تولید محتوا وبسایت راکت - وبلاگ شخصی: https://arastoo.dev
دنبال کردن

گفتگو‌ برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن وارد شو