وبلاگ سجاد نجفی

تجربه های وبگردی من

وبلاگ سجاد نجفی

تجربه های وبگردی من

وبلاگ سجاد نجفی

با خودم گفتم من که هر چند وقت یه بار دنبال مطلبی در اینترنت‌ام تا کار خودمو راه بندازم، خب وقتی کارم راه افتاد و اون مطلب رو در وب پیدا کردم، در یک وبلاگ انتشار بدم تا هم خودم اون مطالب رو داشته باشم و هم به کسایی که دنبال همون چیزایی‌اند که من دنبالشون بودم{!!!} کمکی کرده باشم!

پیام های کوتاه
۰۲
خرداد ۹۸

سلام دوستان

در این جلسه میخوایم در مورد لیست‌ها، تاپل ها و مجموعه ها در پایتون بیاموزیم!

لیست ها (list)
برای ایجاد لیست از براکت [] استفاده می کنیم، برای مثال میخواهیم اکنون لیستی از دوره های آموزشی را ایجاد کنیم:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> print(courses)
['History', 'Math', 'physics', 'CompSci']
اگر بخواهیم ببینیم لیست ما چند عضو دارد کافیست از تابع len استفاده کنیم:
>>> print(len(courses))
4
برای نمایش یک عضو از لیست کافیه مقابل متغیر در دستور پرینت در براکت شماره محل قرارگیری اون عضو رو بنویسیم: (ایندکس از عدد  صفر شروع میشه) :
>>> print(courses[0])
History
روش نمایش آخرین عضو:
اولین عضو که همیشه شماره ایندکس صفر داره بنابراین پیدا کردنش راحته، اما حالا تصور کنید به تعداد نامعلوم عضو دارید و میخواهید آخرین عضو رو چاپ یا یه جا استفاده کنید! شما که شماره ایندکس اون رو نمیدونید! اینجا پایتون راه حل داره و میگه اگر شماره ایندکس منهای یک (1-) رو فراخوانی کنید یعنی شماره آخرین عضو رو صدا زدید:
>>> print(courses[-1])
CompSci
در مثال فوق اگر ما اگر عضو 3 رو هم فراخوانی میکردیم پاسخ مشابه رو دریافت میکردیم چون عدد 3 شماره ایندکس عضو آخر ما در لیست هست:
>>> print(courses[3])
CompSci
چاپ یک محدوده از لیست
نکته مهم: توجه داشته باشید در مورد تعیین محدوده پایتون مثل ریاضی که محدوده باز و بسته داشتیم عمل میکنه. یعنی عددی که شروع بازه است رو بسته و عدد دوم که پایان بازه است رو باز در نظر میگیره بنابراین محدوده شامل عدد آخر بازه نمیشه. بهتره برای درک موضوع به مثال های این بخش توجه کنید.
برای چاپ یک محدوده از لیست کافی هست محدوده رو به جای [عدد] اینطور بنویسیم: [عدد:عدد] اگر هم بخواهیم پایتون از اول تا مثلا ایندکس 18 نشون بده کافی عدد اولی در براکت رو نذاریم(هر چند میتونیم عدد صفر هم بذاریم):  [:18]و اگر بخواهیم از مثلا همین ایندکس 18 تا آخر لیست رو نشون بده کافی عکس این عمل کنیم و عدد دومی رو خالی بذاریم: [18:]
مثال:
>>> print(courses[1:3])
['Math', 'physics']
>>> print(courses[0:3])
['History', 'Math', 'physics']
>>> print(courses[:3])
['History', 'Math', 'physics']
>>> print(courses[2:])
['physics', 'CompSci']
>>> print(courses[:4])
['History', 'Math', 'physics', 'CompSci']
اضافه کردن به لیست
برای اضافه کردن مقدار به انتهای لیست از append استفاده میکنیم:
>>> courses.append('Art')
>>> print(courses)
['History', 'Math', 'physics', 'CompSci', 'Art']
اما اگر بخواهیم یک مقدار را به جای مشخصی از لیست اضافه کنیم کافیه به جای append از insert استفاده کنیم و جلوی اون جا و مقدار رو بنویسیم(ایندکس از صفر):
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> courses.insert(0, 'Art')
>>> print(courses)
['Art', 'History', 'Math', 'physics', 'CompSci']
متصل کردن دو لیست به هم
برای این کار باید از تابع extend استفاده کنیم:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> courses_2 = ['Art', 'Education']
>>> courses.extend(courses_2)
>>> print(courses)
['History', 'Math', 'physics', 'CompSci', 'Art', 'Education']
حذف آیتم از لیست
>>> courses.remove('Math')
>>> print(courses)
['History', 'physics', 'CompSci']
عملیات پشته ای در لیست
می توان از لیست به عنوان پشته استفاده کرد (دوستانی که از پشته چیزی یادشون نیست کافیه برن بخش تصاویر گوگل و بنویسند "پشته در برنامه نویسی" یا " Stack in programming")
مثال اول:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> courses.pop()
'CompSci'
>>> print(courses)
['History', 'Math', 'physics']
مثال دوم:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> popped= courses.pop()
>>> print(popped)
CompSci
معکوس کردن ترتیب قرارگیری محتویات لیست
کافی است از تابع reverse استفاده کنیم:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> courses.reverse()
>>> print(courses)
['CompSci', 'physics', 'Math', 'History']
نمایش لیست به صورت مرتب شده
برای نمایش لیست بر اساس ترتیب الفبا کافیه از تابع sort استفاده کنیم:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> courses.sort()
>>> print(courses)
['CompSci', 'History', 'Math', 'physics']
در مثال فوق میبینیم که ترتیب از کوچکتر به بزرگتر مرتب شده اما اگر بخواهیم ترتیب مرتب سازی بر اساس بزرگتر به کوچکتر باشه یک راه ساده داریم، مرتب و معکوس کنیم:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> nums=[3,4,1,5,2]
>>> courses.sort(reverse=True)
>>> nums.sort(reverse=True)
>>> print(courses)
['physics', 'Math', 'History', 'CompSci']
>>> print(nums)
[5, 4, 3, 2, 1]
اگر ما فقط یک نسخه مرتب شده از لیست را لازم داشته باشیم (بدون جابه جا شدن محل داده ها در لیست اصلی)، کافیه لیست مرتب شده رو با تابع sorted در یک متغیر دیگه قرار بدیم:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> sorted_courses= sorted(courses)
>>> print(sorted_courses)
['CompSci', 'History', 'Math', 'physics']
>>> print(courses)
['History', 'Math', 'physics', 'CompSci']
ماکزیمم، مینیمم و مجموع لیست
>>> nums=[3,4,1,5,2]
>>> print(min(nums))
1
>>> print(max(nums))
5
>>> print(sum(nums))
15
یافتن شماره ایندکس عضو لیست
>>> print(courses.index('CompSci'))
3
اگر عضو وجود نداشته باشد با خطا مواجه خواهیم شد:
>>> print(courses.index('Art'))
Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    print(courses.index('Art'))
ValueError: 'Art' is not in list
برای بررسی وجود یک عنصر در لیست میتوانیم این را بپرسیم! :
>>> print('Art' in courses)
False
>>> print('Math' in courses)
True
ایجاد حلقه برای نمایش عناصر لیست:
>>> for item in courses:
print(item)
History
Math
physics
CompSci
توجه کنید که کلمه item در مثال فوق فقط یک اسم اختیاری هست و میشه به جای اون از هر اسم دیگه استفاده کرد.
اگر بخواهیم لیستی که چاپ میکنیم برای هر عنصر شماره داشته باشه کافیه از قابلیت شماره ایندکس عناصر استفاده کنیم:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> for index, course in enumerate(courses):
print(index, course)
0 History
1 Math
2 physics
3 CompSci
اگر بخواهیم شمارش از یک باشه کافیه بهش بگیم شروع از یک:
>>> for index, course in enumerate(courses, start=1):
print(index, course)
1 History
2 Math
3 physics
4 CompSci
اتصال عناصر لیست:
برای اتصال عناصر یک لیست کافیه از تابع join استفاده کنیم، با این کار در واقع ما لیست را تبدیل به رشته میکنیم:
>>> course_str= ', '.join(courses)
>>> print(courses)
['History', 'Math', 'physics', 'CompSci']
>>> print(course_str)
History, Math, physics, CompSci
به جای کاما در خط اول میتونستیم از هر چیز دیگه ای برای اتصال مقادیر لیست استفاده کنیم.
همچنین ما می تونیم عمل عکس این کار رو هم انجام بدیم یعنی لیستی که تبدیل به رشته شده رو به حالت اول یعنی لیست برگردونیم:
>>> new_list= course_str.split(', ')
>>> print(new_list)
['History', 'Math', 'physics', 'CompSci']

تاپل ها (tuples)
تاپل ها و لیست شبیه به هم هستند اما با یک تفاوت عمده و آن تغییرناپذیر بودن تاپل‌هاست. برای ایجاد تاپل باید از پرانتز(به جای براکت در لیست) استفاده کنیم.
به این مثال توجه کنید:
>>> courses = ['History', 'Math', 'physics', 'CompSci']
>>> new_courses= courses
>>> courses[0]='Art'
>>> print(courses)
['Art', 'Math', 'physics', 'CompSci']
>>> print(new_courses)
['Art', 'Math', 'physics', 'CompSci']
همونطور که دیدیم تونستیم در لیست courses عنصر اول رو به Art تغییر بدیم؛ چون لیست داشتیم. اما در تاپل:
>>> courses_tp=('Art', 'Math', 'physics', 'CompSci')
>>> new_courses_tp = courses_tp
>>> print(courses_tp)
('Art', 'Math', 'physics', 'CompSci')
>>> print(new_courses_tp)
('Art', 'Math', 'physics', 'CompSci')
>>> courses_tp[0]='Art'
Traceback (most recent call last):
  File "<pyshell#121>", line 1, in <module>
    courses_tp[0]='Art'
TypeError: 'tuple' object does not support item assignment
میبینیم که تاپل ما تغییر نمیکنه و خطا میده.

مجموعه ها (set)
مقادیر ست ها نامنظم اما بدون تکرار است؛ در این جا برای ایجاد ست باید از {} استفاده کنیم.
>>> cs_courses={'Art', 'Math', 'physics', 'CompSci'}
>>> print(cs_courses)
{'CompSci', 'physics', 'Math', 'Art'}
همانطور که در مثال بالا میبینید، با چاپ ست، جای عناصر تغییر کرده است و ممکن است با هر بار اجرا این تغییر رخ دهد.
حذف خودکار مقادیر تکراری در سِت(مجموعه):
>>> cs_courses={'Art', 'Math', 'physics', 'CompSci', 'Math'}
>>> print(cs_courses)
{'CompSci', 'physics', 'Math', 'Art'}
خاصیت مهمی که ست ها(مجموعه ها) دارن این هست که اعمالی که روی مجموعه ها انجام میدادیم هم اینجا کاربرد داره مثلا اشتراک گیری، اجتماع گیری و... 
دو مجموعه زیر رو در نظر بگیرید:
>>> cs_courses = {'History', 'Math', 'physics', 'CompSci'}
>>> art_courses={'History', 'Math', 'Art', 'Design'}
حالا میخوایم اشتراک بگیریم:
>>> print(cs_courses.intersection(art_courses))
{'History', 'Math'}
تفاضل مجموعه اول از دوم(در اولی هست ولی در دومی نیست):
>>> print(cs_courses.difference(art_courses))
{'physics', 'CompSci'}
اتحاد:
>>> print(cs_courses.union(art_courses))
{'Art', 'physics', 'Math', 'History', 'Design', 'CompSci'}
ایجاد لیست، تاپل و مجموعه خالی
لیست خالی(هر دو خط برابرند) :
>>> empty_list=[]
>>> empty_list=list()
ایجاد تاپل خالی(هر دو خط برابرند)
>>> empty_tuple=()
>>> empty_tuple=tuple()
ایجاد مجموعه خالی:
خط اول مجموعه خالی ایجاد نمیکند و فقط خط دوم مجموعه خالی ایجاد خواهد کرد:
>>> empty_set={}
>>> empty_set=set()

امیدوارم از این آموزش لذت برده باشین؛ نظر یادتون نره :)

دوستانی که پست اول این سری آموزش رو نخوندن حتما بخونن! >>> پست اول آموزش پایتون

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی