نحوه کارکرد برش (Slicing) در پایتون
How slicing in Python works?
من دارم پایتون یاد میگیرم و با مفهوم برش (Slicing) در لیستها و رشتهها روبرو شدم. ولی هنوز کامل متوجه نشدم که چطوری کار میکنه و چطور میتونم ازش استفاده کنم. میتونید یه توضیح کامل و ساده از برش در پایتون بدید و مثالهایی هم بزنید که چطور میتونم ازش استفاده کنم؟
توی پایتون، برش (Slicing) یه راه خیلی ساده و قدرتمنده که باهاش میتونی از یه لیست یا رشته یه زیرمجموعه بگیری. بیایید با یه مثال ساده شروع کنیم.
فرض کن یه لیست داری به اسم my_list که شامل اعداد ۱ تا ۱۰ هست:
my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
حالا اگه بخوای یه زیرمجموعه از این لیست بگیری، مثلاً اعداد از ۳ تا ۷، میتونی از این روش استفاده کنی:
subset = my_list[2:7] print(subset)
خروجی این کد این میشه:
[3, 4, 5, 6, 7]
همونطور که میبینی، عدد ۳ توی لیست my_list دومین عنصره (چون شمارش از ۰ شروع میشه) و عدد ۷ ششمین عنصره. پایتون همیشه شامل ابتدای بازه (یعنی ۲) میشه ولی انتها رو شامل نمیشه، یعنی ۷ توی خروجی نیست.
حالا اگه بخوای با همون روش یه زیرمجموعه از رشته بگیری، فرض کن یه رشته داری:
my_string = "Hello, World!"
اگه بخوای حروف از ۰ تا ۴ رو بگیری، میتونی اینجوری کد بزنی:
substring = my_string[0:5] print(substring)
و خروجی این میشه:
"Hello"
توی این مثال، همونطور که قبلاً گفتم، شروع شامل میشه (یعنی ۰) ولی انتها نه (یعنی ۵).
حالا چند نکته پیشرفتهتر:
- شروع و پایان رو خالی بذاری:
اگه شروع یا پایان رو ننویسی، یعنی از ابتدا یا تا انتها رو میگیری. مثلاً:
print(my_list[:5]) print(my_list[5:])
- گام (Step): میتونی یه گام هم مشخص کنی که بگی چقدر چقدر از یکی بپر، مثلاً:
print(my_list[::2])
خروجی میشه:
[1, 3, 5, 7, 9]
این برشها توی پایتون خیلی کار رو راحت میکنن، مخصوصاً وقتی با دادههای بزرگ سر و کار داری و باید سریعاً یه زیرمجموعه خاص رو استخراج کنی.