دوره H برنامه نویسی پایتون
فصل پنجم: نوعهای دیگر
درس چهارم: برش لیستها (List Slices) در پایتون
تکنیک برش لیست، راهحل پیشرفتهتری برای بازیابی مقادیر از یک لیست (که میتواند یک تاپل نیز باشد) را فراهم میکند. این کار، تکهای از یک لیست را برش داده و برمیگرداند.
روش پایه برای برش لیست، شامل ایندکس کردن لیست با استفاده از دو عدد صحیح میباشد که توسط دونقطه از هم جدا شدهاند؛ انجام این کار برروی لیست، یک لیست جدید برمیگرداند و این لیست جدید، شامل مقادیرِ ایندکسهای بین دو عدد صحیح است! به عبارتی این روش، مشخص میکند که از کدام ایندکس تا کدام ایندکس لیست بصورت یک لیست جدید برگردانده شود. برای مثال:
1 2 3 4 |
squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] print(squares[2:6]) // از 2 تا 6 print(squares[3:8]) // از 3 تا 8 print(squares[0:1]) // از 0 تا 1 |
خروجی:
1 2 3 4 5 |
>>> [4, 9, 16, 25] [9, 16, 25, 36, 49] [0] >>> |
وارد نکردن عدد اول یا دوم
اگر در برش لیست (اسلایس)، عدد اول وارد نشود، از ابتدای لیست حساب خواهد شد (یعنی از ایندکس 0). و اگر عدد دوم وارد نشود، به انتهای لیست اشاره خواهد کرد. برای مثال:
1 2 3 |
squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] print(squares[:7]) // از 0 تا 7 print(squares[7:]) // از 7 تا آخر |
خروجی:
1 2 3 4 |
>>> [0, 1, 4, 9, 16, 25, 36] [49, 64, 81] >>> |
عدد سوم در برش
این عدد در برش لیست، مقدار step یا گام (قدم) برش را مشخص میکند که بصورت پیشفرض 1 است. یعنی اینکه وقتی مشخص میشود از 2 تا 7 برگردانده شود، اگر گام برابر 2 باشد، ایندکسهای 2، 4 و 6 برگردانده خواهند شد. برای مثال:
1 2 3 |
squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] print(squares[::2]) print(squares[2:8:3]) |
خروجی:
1 2 3 4 |
>>> [0, 4, 16, 36, 64] [4, 25] >>> |
مقادیر منفی
مقادیر منفی نیز میتوانند در برش لیستها استفاده شوند. در واقع وقتی از اعداد منفی برای رقم اول و دوم استفاده میشود، بجای شمرده شدن از ابتدای لیست، از انتهای لیست شمرده میشود! برای مثال:
1 2 |
squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] print(squares[1:-1]) |
خروجی:
1 2 3 |
>>> [1, 4, 9, 16, 25, 36, 49, 64] >>> |
در اینجا عدد اول برابر 1 است، بنابراین از مقدار خانهی 4 در نظر گرفته میشود و عدد دوم -1 است، که اینکار باعث میشود تا ایندکس از آخر حساب شده و بنابراین در اینجا -1 در واقع به ایندکس 9 ام اشاره دارد. (که آخرین ایندکس است).
نظرات ثبت شده بدون دیدگاه