یکی از ویژگی های دوست داشتنی پایتان اینه که میشه یک iterable (منظور از iterable متغیر هایی مثل list ها هستن که میشه توشون چرخید با for ... in) رو تبدیل به متغیر های تک به تک کرد. به این مبحث میگن unpacking که همون طوری هم از اسمش معلومه یعنی از بسته بندی باز کردن.
با یک مثال بریم جلو. فرض کن یک tuple داریم مثل زیر:
nums = (1,2,3)
حالا اگه دوست داشته باشیم به جای یک tuple یا ۳ عضو، سه متغیر داشته باشیم؟! مثلا میشه این طوری کد زد:
a = nums[0] b = nums[1] c = nums[2]
ولی خوب پایتان یک بزرگواری کرده و این قابلیت رو به ما داده که ۳ خط کد بالا رو توی یک خط بنویسیم!
a, b, c = nums
در خصوص unpacking دو نکته مهم مطرحه:
حالا فرض کن که یک list دارم با ۱۰ تا عضو (مثلا اعداد ۱ تا ۱۰) و میخایم که عدد 1 روی توی a ذخیره کنیم و بقیه اعداد رو توی other. تو این شرایط باید از * (بچه ها اسم این علامت asterisk عه) کمک بگیریم:
nums = [1,2,3,4,5,6,7,8,9,10] a, *others = nums
در این حالت جنس متغیر others مثل جنس متغیر unpack شده خواهد بود. میشه که متغیر ستاره دار رو وسط متغیر ها هم قرار داد:
nums = [1,2,3,4,5,6,7,8,9,10] a, *other, b = nums
در مثال بالا b برابر با ۱۰ و a برابر با ۱ خواهد شد و others میشه list ای از ۲ تا ۹!
استفاده از unpacking تو کد های پایتان چیز رایجی هست. جدا از این که خیلی راحت و ساده است خیلی هم لذت بخشه استفاده ازش. امیدوارم از این مقاله خوشت اومده باشه. اگه نکته ای مونده که ذکر نکرده باشم خوشحال میشم تو کامنت ها بهم بگی.