ماژول‌های پیشرفته در پایتون

در زبان برنامه‌نویسی پایتون ماژول‌ها بخش‌های کوچکی از یک برنامه بزرگ‌تر هستند. در آموزش‌های گذشته با ایجاد انواع ماژول آشنا شده‌ایم. در این بخش به توضیح در مورد نحوه استفاده از ماژول‌‌ پیشرفته که توسط اشخاص دیگر ایجاد می‌شوند، می‌پردازیم.

ماژول‌ پیشرفته collections

برای استفاده از کلاس Counter از ماژول پیشرفته collections، ابتدا دستور from collections import Counter را می‌نویسیم. این کلاس یک دنباله را به عنوان ورودی می‌گیرد. در نهایت یک dictionary که کلیدهای آن اعضای دنباله و مقادیر آن تعداد هر کدام از اعضا می‌باشد را برمی‌گرداند.

کلاس counter در مبحث ماژول‌‌های پیشرفته

 

این دنباله می‌تواند string نیز باشد. در نهایت با استفاده از ماژول پیشرفته collections یک dictionary که کلیدهای آن اعضای string و مقادیر آن تعداد هر کدام از اعضا می‌باشد را برگردانده می‌شود.

استفاده از کلاس counter در string

 

اگر یک string را split کنیم، یک لیستی از اعضای string خواهیم داشت که در string با فاصله از یکدیگر جدا شده‌اند. ابتدا مقدار split شده را برابر با متغیر word قرار می‌دهیم. سپس می‌توانیم با Counter از ماژول پیشرفته collections تعداد هر یک از این اعضا را که در string استفاده شده است، به دست آوریم.

استفاده از کلاس counter و متد split

 

اگر کلاس Counter از ماژول پیشرفته collections را برابر با یک متغیر قرار دهیم. سپس نام متغیر را نوشته و بعد نقطه و یک Tab بزنیم. در این صورت تمام attributeها و متدهای Counter نمایش داده می‌شود. اگر متد  most_common را انتخاب کنیم، یک لیستی از تاپل‌ها داده می‌شود. که درون هر تاپل اعضای دنباله مد نظر و تکرار آن عضو به ترتیب از بیشتر به کمتر نمایش داده می‌شود.

کلاس counter و متد most_common

 

اگر در داخل پرانتز متد most_common یک عدد قرار دهیم. به عنوان مثال عدد ۳ را در نظر بگیریم، به این معنی می‌باشد که ۳ تا عضوی که بیشترین تکرار را داشته‌اند را به ترتیب، بدهد.

کلاس counter از ماژول collections که از ماژول‌های پیرفته است

 

متد keys از ماژول پیشرفته collections اعضای یک دنباله را به صورت یک لیست نشان می‌دهد.

کلاس counter از ماژول پیشرفته collections

 

متد values از ماژول پیشرفته collections تعداد اعضای یک دنباله را به صورت یک لیست نشان می‌دهد. اگر  تابع sum را برای متد values بکار ببریم تعداد کل اعضای موجود در یک دنباله را به نمایش می‌دهد.

متد values و کلاس counter از ماژول پیشرفته collections

 

کار با دیکشنری در ماژول پیشرفته collections

در یک dictionary اگر مقدار یک کلیدی که موجود نباشد را بخواهیم به دست بیاوریم با خطا مواجه می‌شویم.

نحوه کار با دیکشنری در ماژول پیشرفته collections

 

defaultdict در ماژول پیشرفته collections

برای ثبت کلید بدون مقدار می‌توان defaultdict را از ماژول پیشرفته import ،collections کرد. سپس یک متغیر به نام d را برابر با defaultdict قرار می‌دهیم و عبارت object را به عنوان آرگومان آن قرار می‌دهیم. در این حالت می‌توان یک کلید بدون مقدار را ثبت کنیم.

کار با دیکشنری در ماژول پیشرفته

 

اگر برای آرگومان defaultdict از ماژول پیشرفته collections، عبارت lambda:0 را در نظر بگیریم، به این معنی می‌باشد که هر کلیدی که برای dictionary در نظر گرفتیم و بدون مقدار بود، یک عدد به صورت پیش فرض که در اینجا صفر است را به عنوان مقدار آن به کلید نسبت می‌دهیم.

کاربرد defaultdict در ماژول پیشرفته collections

 

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

کابرد OrderedDict در ماژول پیشرفته collections

 

در این صورت می‌توان از ماژول پیشرفته OrderedDict ،collections را import می‌کنیم. سپس یک متغیر به نام d را برابر با OrderedDict قرار می‌دهیم. تعدادی کلید و مقدار به این dictionary نسبت دهیم، خواهیم دید که  ترتیب قرار گیری این کلیدها و مقادیر در dictionary و زمانی که نمایش داده می‌شوند برابر خواهد بود.

کاربرد OrderedDict در ماژول پیشرفته collections

 

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

نحوه کار با OrderedDict در ماژول پیشرفته collectuons

 

OrderedDict در ماژول پیشرفته collections

اگر دو دیکشنری را با OrderedDict از ماژول پیشرفته collections بسازیم، سپس بسنجیم که دو دیکشنری با هم برابر هستند یا خیر، خواهیم دید که برابر نخواهند بود. زیرا در دیکشنری OrderedDict ترتیب، الویت دارد.

نحوه کار با OrderedDict در ماژول پشرفته collections

 

namedtuple در ماژول پیشرفته collections

اگر از ماژول پیشرفته namedtuple ،collections را import کنیم، می توانیم یک آبجکت به وسیله namedtuple بسازیم. در این صورت برای آرگومان اول، اسم آن آبجکت را درون یک کوتیشن قرار می‌دهیم. و برای آرگومان دوم attributeهای آبجکت را که همگی درون یک کوتیشن قرار می‌گیرند، در نظر می‌گیریم. در این صورت attributeهای آبجکت ساخته شده را می‌توان با نوشتن نام نمونه‌ایی که از آبجکت ساخته‌ایم. و سپس نقطه و در نهایت  attributeمورد نظر، فراخوانی کنیم. همچنین با نوشتن اندیس attribute مورد نظر در مقابل نام نمونه‌ایی که از آبجکت ساخته‌ایم، می‌توانیم attribute مورد نظر را فراخوانی کنیم.

کاربرد namedtuple در ماژول پیشرفته collections

 

برای آشنایی بیشتر با مبحث ماژول پیشرفته و نحوه کار با آن‌ها می‌توانید به دوره جامع آموزش زبان برنامه‌نویسی پایتون  آکادمی رسا مراجعه کنید.

0/5 (0 Reviews)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست