لیستها: کلی مقدار یهجا (Lists)
لیست مقدارها رو به ترتیب زیر یه اسم نگه میداره. آیتمها رو با جاشون برمیداری، اضافه و عوضشون میکنی، و خطایی رو میشناسی که وقتی یه جای ناموجود رو بخوای میگیری.
لیستها
کلی مقدار، به ترتیب، زیر یه اسم
لیست رو با کروشه مینویسن و بین آیتمها ویرگول میذارن: scores = [8, 5, 9]. آیتمها همون ترتیبی رو که نوشتی نگه میدارن. میتونن از هر نوعی باشن، عدد، رشته یا قاطی، و len(scores) بهت میگه چند تا آیتم هست. وقتی یه لیست رو چاپ کنی، کروشههاش هم چاپ میشن.
names = ["Sara", "Omid"] یه لیست از دو تا رشتهست؛ len(names) میشه 2.
scores = [8, 5, 9]
names = ["سارا", "امید"]
print(scores)
print(names)
print(len(scores))[8, 5, 9]
['سارا', 'امید']
3به خط دوم خروجی دقت کن: پایتون رشتههای توی لیست رو با گیومهی تکی چاپ میکنه، با اینکه توی کد گیومهی دوتایی بوده. در هر دو حالت همون متنه.
خودت رو امتحان کن
scores = [8, 5, 9]
print(scores[1])589[8, 5]
جواب رو ببین
5جایگاهها
اندیسها از 0 شروع میشن و آخریش len - 1ـه
لیستها هم جایگاهها رو از 0 میشمرن، درست مثل رشتهها. توی scores = [8, 5, 9]، scores[0] میشه 8 و scores[2] میشه 9، و scores[-1] همیشه آخرین آیتمه. سه تا آیتم یعنی جایگاههای 0 و 1 و 2، پس آخرین اندیس یکی کمتر از طول لیسته. اگه scores[3] رو بخوای، برنامه با IndexError: list index out of range متوقف میشه. این اشتباه یکیکمیکیزیاد رایجترین اشتباه لیستهاست.
برش هم کار میکنه: scores[0:2] میشه [8, 5].
خودت رو امتحان کن
scores[-1] آخرین آیتم لیست رو میده، طول لیست هر چقدر که باشه.
جواب رو ببین
درست
درسته. جایگاههای منفی از آخر به عقب میشمرن، پس -1 همیشه آخرین آیتمه. با [8, 5, 9] میشه 9؛ بعد از اضافه کردن 7 میشد 7.
قدمبهقدم ببین

scores = [8, 5, 9]: سه تا خونه، با شماره از 0لیست بهصورت سه تا خونهی بههمچسبیده کشیده شده که 8 و 5 و 9 رو دارن، و اسم scores سمت چپشه. زیرشون جایگاهشون نوشته شده، 0 و 1 و 2: لیست یه ردیف مقداره زیر یه اسم، که از 0 شمارهگذاری شده.

scores[1]عدد 5 رو بیرون میارهفلش
scores[1]به خونهی وسطی اشاره میکنه که روشن میشه، و مقدارش، یعنی 5، بالای اون بیرون میاد. عدد توی کروشه آیتمی رو که توی اون جایگاهه برمیداره، و جایگاه 1 دومین آیتمه.
append(7)یه خونهی چهارم اضافه میکنهappend(7)یه خونهی جدید با مقدار 7 به ته لیست اضافه میکنه، و اندیس 3 زیرش ظاهر میشه. یه شمارنده سمت چپ حالا میگه len = 4: append یه آیتم به آخر اضافه میکنه و طول لیست یکی بیشتر میشه.
scores[4]به بعد از آخر لیست اشاره میکنه: IndexErrorیه فلش دوم،
scores[4]، به یه خونهی خالی و خطچین بعد از 7 اشاره میکنه که برچسب نارنجی IndexError داره. با چهار تا آیتم جایگاهها 0 تا 3 هستن، پس آخرین اندیس یکی کمتر از lenـه؛ خواستن 4 خطا میده.
خودت رو امتحان کن
scores = [8, 5, 9]
scores.append(7)
print(len(scores))43710
جواب رو ببین
4عوض کردن لیست
برخلاف رشتهها، لیستها رو میشه عوض کرد
میتونی با مقداردهی به یه جایگاه، آیتمش رو عوض کنی: scores[1] = 6. append() یه آیتم به آخر اضافه میکنه، remove(9) اولین 9ای رو که پیدا کنه پاک میکنه، و pop() آخرین آیتم رو برمیداره و پس میده. چند تا ابزار هم هستن که لیست رو بدون عوض کردنش میخونن: sum() و max() و min()، و in برای اینکه ببینی یه مقدار توش هست یا نه.
برای [8, 5, 9]، 9 in scores میشه True و sum(scores) میشه 22.
scores = [8, 5, 9]
scores[1] = 6
scores.append(7)
print(scores)
print(9 in scores)
print(sum(scores))
print(max(scores))[8, 6, 9, 7]
True
30
9خط ۲ بهجای 5 عدد 6 میذاره، و خط ۳ عدد 7 رو به آخر اضافه میکنه، پس لیست حالا [8, 6, 9, 7]ـه. بعد in و sum() و max() میخوننش: 9 توش هست، جمع آیتمها 30 میشه، و بزرگترینشون 9ـه.
items = ["شیر", "نون"]
items.append("چای")
print(items)
print(len(items))
print(items[-1])['شیر', 'نون', 'چای']
3
چاییه فهرست خرید که بزرگتر میشه. بعد از append، «چای» سومین آیتمه، توی اندیس 2، که همون items[-1] هم هست. مثل قبل، لیست با گیومهی تکی چاپ میشه.
خودت رو امتحان کن
items = ["milk", "eggs"]
items.____("tea")
print(items)append · add · len · pop
جواب رو ببین
append
درسته. append() کلمهی tea رو به آخر اضافه میکنه، و لیست بهصورت ['milk', 'eggs', 'tea'] چاپ میشه.
خودت رو امتحان کن
names = ["Sara", "Omid", "Negar"]print(names[3])
جواب رو ببین
اشکال توی خط ۲.
پیداش کردی. سه تا اسم توی جایگاههای 0 و 1 و 2 نشستن، پس names[3] بعد از آخر لیسته: IndexError: list index out of range. آخرین اسم names[2]ـه، یا names[-1].
مرور درس
- لیست مقدارها رو به ترتیب زیر یه اسم نگه میداره:
scores = [8, 5, 9]. - جایگاهها از 0 شروع میشن و
[-1]آخرین آیتمه؛ آخرین اندیس همیشهlen(scores) - 1ـه. - خواستن جایگاهی بعد از آخر لیست، مثل
scores[3]اینجا، IndexError میده، همون اشتباه معروف یکیکمیکیزیاد. - لیستها عوض میشن:
scores[1] = 6جایگزین میکنه،append()به آخر اضافه میکنه،remove()وpop()آیتم برمیدارن. inوsum()وmax()وmin()لیست رو میخونن؛sorted()یه لیست جدید پس میده، ولیsort()خود لیست رو عوض میکنه.