نوع داده‌ای لیست در پایتون

منتشر شده در دسته : زبان برنامه نویسی پایتون

نوع داده ای لیست چیست ؟ لیست به مجموعه‌ای داده‌ ای اشاره دارد که به صورت عادی به هم مرتبط اند . به جای ذخیره این داده‌ها به عنوان متغیرهای جداگانه ما می‌توانیم آن‌ها در یک لیست ذخیره کنیم . برای نمونه فرض کنید برنامه ما نیاز دارد که سن ۵ کاربر را ذخیره کند . به جای ذخیره سازی آن‌ها در پنج متغیر با نام های userAge1 تا userAge5 می‌توانیم آن‌ها را در قالب یک لیست ذخیره کنیم .

نوع داده ای لیست

به منظور اعلان یک لیست از نوع داده ای لیست از ساختار دستوری زیر استفاده می‌کنیم :

listName = [initial values]

به یاد داشته باشید که به منظور اعلان یک نوع داده ای لیست در پایتون از براکت [] استفاده می‌کنیم . همچنین مقادیر لیست را با علامت کاما , از هم جدا می‌کنیم .

مثال :

userAge = [21, 22, 23, 24, 25]

ما همچنین می‌توانیم یک لیست را بدون تعیین هیچ مقدار اولیه‌ای اعلان کنیم . به این منظور به سادگی می نویسیم :

listName = []

اکنون چیزی که ما داریم این است که یک لیست خالی بدون هیچ مقدار تعیین شده‌ای داریم . به منظور اضافه کردن مقادیر به لیست بایستی از تابع append استفاده کنیم که در زیر توضیح خواهیم داد . مقادیر تکی درون لیست توسط مقادیر ایندکس قابل دسترسی هستند . دقت کنید که ایندکس ها از مقدار صفر آغاز می‌شود نه از مقدار ۱ که این شیوه در اکثر زبان‌های برنامه نویسی رایج است مثل زبان C و یا Java
از آنجایی که اولین مقدار ایندکس صفر است مقدار دوم ۱ می‌باشد و الی آخر . مثلاً :

userAge [0] = 21

userAge [1] = 22

به صورت جایگزین شما می‌توانید مقادیر یک لیست را از آخر فراخوانی کنید . آخرین آیتم موجود در لیست ما ایندکس 1- و دومین آیتم از آخر ایندکس 2- را دارد . چگونه ؟ به صورت زیر:

userAge [-1] = 25

userAge [-2] = 24

شما می‌توانید یک لیست یا بخشی از آن را به یک متغیر اختصاص دهید . اگر که بنویسید

userAge2 = userAge

متغیر userAge2 می‌شود :

userAge = [21, 22, 23, 24, 25]

اگر که شما بنویسید :

userAge3 = userAge [2:4]

شما آیتم های دارای ایندکس ۲ را تا ایندکس ۱-۴ از لیست userAge برداشته و به userAge3 اختصاص می‌دهیم . یعنی از ایندکس ۲ تا ۳ که می‌شود :

userAge3 = [23, 24]

این نوع علامت گذاری 2:4 را slice یا برش می نامند . اگر از شیوه علامت گذاری برش در پایتون استفاده کنیم ، آیتم در ایندکس آغازین همیشه در لیست ما شامل می‌شود ولی آیتم آخرین همیشه از لیست حذف می‌شود . به همین دلیل است که نتیجه 2:4 به صورت زیر می‌شود :

userAge3 = [23, 24]

نه به صورت زیر :

user Age3 = [23, 24, 25]

نشانه گذاری slice دارای عدد سومی با نام Stepper می‌باشد . اگر که بنویسیم :

userAge4 = userAge[1:5:2]

در اینجا کاری که استپر انجام می‌دهد این است که هر زیر لیست شامل هر شماره دومی را از ایندکس ۱ تا ۴ به ما می‌دهد . در اینجا برای ما چونکه استپر عدد ۲ می‌باشد نتیجه می‌شود :

userAge4 = [22, 24]

علاوه براین نشانه گذاری اسلایس دارای مقادیر پیش‌فرض (Defaults) می باشد . مقدار پیش‌فرض برای اولین عدد صفر می‌باشد و مقدار پیش‌فرض برای عدد دوم اندازه برش داده شده لیست می‌باشد ! به مثال زیر توجه کنید واضح بیان شده است :

userAge [ :4 ]

در مثال بالا عدد اول آورده نشده و به جای آن مقدار پیش‌فرض یعنی صفر در نظر گرفته می‌شود یعنی اینکه از ایندکس صفر تا ایندکس ۱-۴ را به شما می‌دهد .
مثال دوم :

userAge[1: ]

در مثال بالا عدم دوم آورده نشده است در نتیجه اندازه برش داده شده لیست در نظر گرفته می‌شود . اندازه اسلایس لیست ۱-۵ می‌باشد . (چرا که اندازه userAge ۵ می‌باشد و دارای پنج آیتم می باشد) . پس مثال بالا از ایندکس ۱ تا ایندکس ۱-۵ یعنی ۱ تا ۴ را به ما می‌دهد .
برای ویرایش و تغییر ایتم ها در یک لیست می نویسیم :

listName = [indexes] = مقدار جدید

برای نمونه اگر بخواهیم که آیتم دوم را ویرایش کنیم به سادگی می نویسیم :

userAge [1] = 5

که در نتیجه عبارت بالا لیست شما به صورت زیر تغییر پیدا می‌کند :

userAge = [21, 5, 23, 24, 25]

برای اضافه کردن آیتم ها به لیست از تابع append استفاده می‌کنیم . برای مثال اگر بنویسیم :

userAge.append(99)

شما در حقیقت مقدار ۹۹ را به پایان لیست اضافه کرده‌اید . اکنون لیست شما به صورت زیر تغییر یافته است :

userAge = [21, 5, 23, 24, 25, 99]

برای حذف یک آیتم از لیست از ساختار دستوری زیر استفاده می‌کنیم :

del listName [ایندکس آیتم هایی که می‌خواهیم از لیست حذف کنیم ]

برای مثال اگر بنویسیم :

del userAge[2]

لیست به صورت زیر تغییر خواهد کرد (مقدار سومی با ایندکس ۲ حذف می شود )

userAge = [21, 5, 24, 25, 99]

برای اینکه در مبحث  نوع داده ای لیست  خبره شوید برنامه زیر را اجرا کنید و به خروجی ها و نتایج بدست آمده دقت کنید :

#declaring the list, list elements can be of different data types

myList = [1, 2, 3, 4, 5, “Hello”]

#print the entire list.

print(myList)

#You’ll get [1, 2, 3, 4, 5, “Hello”]

#print the third item (recall: Index starts from zero).

print(myList[2])

#You’ll get 3

#print the last item.

print(myList[-1])

#You’ll get “Hello”

#assign myList (from index 1 to 4) to myList2 and print myList2

myList2 = myList[1:5]

print (myList2)

#You’ll get [2, 3, 4, 5]

#modify the second item in myList and print the updated list

myList[1] = 20

print(myList)

#You’ll get [1, 20, 3, 4, 5, ‘Hello’]

#append a new item to myList and print the updated list

myList.append(“How are you”)

print(myList)

#You’ll get [1, 20, 3, 4, 5, ‘Hello’, ‘How are you’]

#remove the sixth item from myList and print the updated list

del myList[5]

print(myList)

#You’ll get [1, 20, 3, 4, 5, ‘How are you’]