لیست چیست؟

لیست مجموعه‌ای از عناصر با ترتیبی مشخّص است. می‌توانید لیستی شامل حروف الفبا، اعداد ۰ تا ۹ یا نام تمام افراد خانواده‌ی خود درست کنید. شما می‌توانید هرچه بخواهید درون یک لیست قرار دهید و عناصر داخل لیست الزاماً ارتباطی با یکدیگر ندارند. از آنجایی‌که هر لیست معمولاً بیش از یک عضو دارد بهتر است آن را به صورت جمع نام‌گذاری کنید، مانند letters، digits یا names.

در پایتون از کروشه ( [] ) برای نمایش یک لیست استفاده می‌شود و اعضای داخل آن با کمک کاما از یکدیگر جدا می‌شوند. اینجا مثالی از یک لیست شامل نام چند نوع دوچرخه آورده می‌شود:

1
2
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)

اگر از پایتون بخواهید که این لیست را چاپ کند، آن را به روش خاص خود، با کروشه، نمایش می‌دهد:

1
['trek', 'cannondale', 'redline', 'specialized']

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

دسترسی به اعضای لیست

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

برای مثال اوّلین نوع دوچرخه را از لیستِ bicycles بیرون می‌کشیم:

1
2
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])

روش کار در 2 نمایان است. زمانی که یک عنصر لیست را درخواست می‌کنیم، پایتون آن را بدون کروشه نمایش می‌دهد:

1
trek

این نتیجه‌ای است که انتظار دارید کاربران ببینند– خروجی تمیز و مرتّب.

همچنین می‌توانید متدهای مخصوص رشته‌ها در فصل ۲ را روی هر عضو لیست اعمال کنید. برای مثال می‌توان به کمک متد title() به عضو ’trek’ شکل بهتری داد:

1
2
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].title())

این مثال خروجی‌ای همانند مثال قبل تولید می‌کند، با این تفاوت که حرف اول آن را بزرگ می‌کند.

شماره‌گذاری شاخص‌ از ۰ شروع می‌شود نه ۱

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

دومین عضو لیست شاخص ۱ دارد. با استفاده از این روش شمارش می‌توانید هر عضوِ لیست را با کم کردن عدد ۱ از جایگاه واقعی آن در لیست پیدا کنید. برای مثال برای دسترسی به عضو چهارم لیست، شاخص ۳ را فراخوانی کنید.

مثال زیر نام دوچرخه‌ها را با شاخص‌های ۱ و ۳ درخواست می‌کند:

1
2
3
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])

این کد دوچرخه‌های دوم و چهارم را برمی‌گرداند:

1
2
cannondale
specialized

پایتون روش خاصی برای دسترسی به آخرین عضو لیست دارد. با فراخواندن عنصر ۱-ام، پایتون آخرین عضو لیست را برمی‌گرداند:

1
2
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])

این کد مقدار ‘specialized’ را برمی‌گرداند. این روش بسیار سودمند است زیرا در بسیاری از موارد شما بدون اطّلاع از تعداد عضوهای لیست می‌خواهید به آخرین عضو دسترسی پیدا کنید. این قاعده را می‌توان به دیگر شاخص‌های منفی نیز گسترش داد: شاخص ۲- عضو دو تا مانده به آخر و ۳- سه تا مانده به آخر را برمی‌گرداند و … .

به‌کارگیری مقادیر اعضای یک لیست

می‌توانید از اعضای یک لیست به صورت جداگانه درست همانند هر متغیّر دیگری استفاده کنید. برای مثال به کمک f-string می‌توانید پیامی بر اساس یکی از عضو‌های لیست ساخت.

اکنون با بیرون کشیدن نام اوّلین دوچرخه و به کمک مقدار آن پیامی تولید می‌کنیم:

1
2
3
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = f"My first bicycle was a {bicycles[0].title()}."
print(message)

در خط 2 جمله‌ای به کمک مقدار bicycles[0] ساخته و آن را به متغیّر message نسبت دادیم. خروجی کد جمله‌ای ساده در مورد اوّلین دوچرخه‌ی لیست است:

1
My first bicycle was a Trek.

خودآزمایی

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

نام‌ها

نام چند تن از دوستان خود را در لیستی به نام names ذخیره کنید. نام هر کدام از افراد را یک به یک با فراخواندن هر عضو لیست چاپ کنید.

تبریک

تمرین ۳-۱ را تکرار کنید امّا این دفعه به جای چاپ کردن اسم‌ها به تنهایی، پیامی خطاب به آن‌ها بنویسید. متن هر پیام باید یکسان باشد امّا پیام باید برای هر کس شخصی‌شده باشد.

لیست شخصی

روش حمل و نقل مطلوب خود (موتورسیکلت، ماشین یا …) را در نظر بگیرید، لیستی شامل چند نمونه از آن‌ها درست کنید و عبارت‌هایی در مورد اعضای این لیست چاپ کنید، مثلاً “I would like to own a Honda motorcycle”.