لیست در برنامه نویسی پایتون

4 سال پیش
لیست در برنامه نویسی پایتون

لیست در برنامه نویسی پایتون

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، ما همه چیز را در مورد لیست در برنامه نویسی پایتون (python list)، نحوه ایجاد آنها، برش دادن یک لیست، اضافه کردن یا حذف عناصر از آنها و غیره را به شما یاد خواهیم داد.

پیشنهاد ویژه : پکیج آموزش صفر تا صد پایتون

پایتون طیف وسیعی از انواع داده مرکب و ترکیبی را ارائه می دهد که اغلب به عنوان دنباله یا توالی نامیده می شوند. لیست یکی از پر استفاده ترین و متنوع ترین نوع داده های مورد استفاده در پایتون است.

چگونه در پایتون یک لیست ایجاد کنیم؟

در برنامه نویسی پایتون، با قرار دادن همه موارد (عناصر) درون یک براکت [] لیست ساخته می شود، و عناصر موجود در لیست با ویرگول از هم جدا می شوند.

یک لیست می تواند هر تعداد عنصر داشته باشد و ممکن است انواع مختلفی داشته باشد مانند (عدد صحیح ، ممیز شناور، رشته و غیره).

# empty list
my_list = []

# list of integers
my_list = [1, 2, 3]

# list with mixed data types
my_list = [1, "Hello", 3.4]

 

همچنین یک لیست می تواند لیست دیگری را به عنوان یک عنصر در خود داشته باشد. این حالت یک لیست تو در تو نامیده می شود.

# nested list
my_list = ["mouse", [8, 4, 6], ['a']]

 

دسترسی به عناصر یک لیست در پایتون

روش های مختلفی وجود دارد که می توانیم به عناصر یک لیست دسترسی پیدا کنیم.

اندیس لیست

ما می توانیم از عملگر اندیس برای دسترسی به عناصر در لیست استفاده کنیم. در پایتون، اندیس ها از ۰ شروع می شوند. بنابراین، لیستی با ۵ عنصر از ۰ تا ۴ دارای اندیس خواهد بود.

تلاش برای دستیابی به اندیس های غیر از این باعث ایجاد یک IndexError می شود. ایندیس باید یک عدد صحیح باشد. ما نمی توانیم از عدد ممیز شناور یا انواع دیگر استفاده کنیم ، این امر منجر به TypeError می شود.

لیست های تو در تو با استفاده از اندیس سازی تو در تو قابل دسترسی هستند.

# List indexing

my_list = ['p', 'r', 'o', 'b', 'e']

# Output: p
print(my_list[0])

# Output: o
print(my_list[2])

# Output: e
print(my_list[4])

# Nested List
n_list = ["Happy", [2, 0, 1, 5]]

# Nested indexing
print(n_list[0][1])

print(n_list[1][3])

# Error! Only integer can be used for indexing
print(my_list[4.0])

 

خروجی

p
o
e
a
۵
Traceback (most recent call last):
  File "<string>", line 21, in <module>
TypeError: list indices must be integers or slices, not float

 

 

اندیس دهی منفی

پایتون برای دنباله های یا همان توالی های خود اندیس دهی منفی را امکان پذیر می کند. اندیس ۱- به آخرین مورد لیست، اندیس ۲- به یکی مانده به آخر اشاره دارد.

# Negative indexing in lists
my_list = ['p','r','o','b','e']

print(my_list[-1])

print(my_list[-5])

 

خروجی

e
p

 

چگونه می توان لیست ها را در پایتون برش زد؟

با استفاده از عملگر برش می توانیم به طیف وسیعی از عناصر در یک لیست دسترسی داشته باشیم.

# List slicing in Python

my_list = ['p','r','o','g','r','a','m','i','z']

# elements 3rd to 5th
print(my_list[2:5])

# elements beginning to 4th
print(my_list[:-5])

# elements 6th to end
print(my_list[5:])

# elements beginning to end
print(my_list[:])

 

خروجی

['o', 'g', 'r']
['p', 'r', 'o', 'g']
['a', 'm', 'i', 'z']
['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z']

 

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

تغییر عناصر یا افزودن عناصر جدید به لیست در پایتون

لیست ها قابل تغییر هستند، به این معنی که عناصر آنها بر خلاف رشته یا تاپل قابل تغییر هستند.

ما می توانیم از عملگر انتساب (=) برای تغییر یک مورد یا طیف وسیعی از موارد استفاده کنیم.

# Correcting mistake values in a list
odd = [2, 4, 6, 8]

# change the 1st item    
odd[0] = 1            

print(odd)

# change 2nd to 4th items
odd[1:4] = [3, 5, 7]  

print(odd)

 

خروجی

[۱, ۴, ۶, ۸]
[۱, ۳, ۵, ۷]

 

ما می توانیم با استفاده از متد ()append یک مورد را به لیست اضافه کنیم یا با استفاده از متد ()extend چندین مورد را اضافه کنیم.

# Appending and Extending lists in Python
odd = [1, 3, 5]

odd.append(7)

print(odd)

odd.extend([9, 11, 13])

print(odd)

 

خروجی

[۱, ۳, ۵, ۷]
[۱, ۳, ۵, ۷, ۹, ۱۱, ۱۳]

 

همچنین می توانیم از عملگر +  برای ترکیب دو لیست استفاده کنیم.  به این کار الحاق (concatenation) نیز گفته می شود.

عملگر * لیستی را به تعداد یک عدد داده شده، تکرار می ‌کند.

# Concatenating and repeating lists
odd = [1, 3, 5]

print(odd + [9, 7, 5])

print(["re"] * 3)

 

خروجی

[۱, ۳, ۵, ۹, ۷, ۵]
['re', 're', 're']

 

بعلاوه، می توانیم با استفاده از متد()insert  یک عنصر را در مکان دلخواه وارد کنیم یا با فشردن آن در یک برش خالی از لیست، چندین مورد را وارد کنیم.

# Demonstration of list insert() method
odd = [1, 9]
odd.insert(1,3)

print(odd)

odd[2:2] = [5, 7]

print(odd)

 

خروجی

[۱, ۳, ۹]
[۱, ۳, ۵, ۷, ۹]

 

چگونه عناصر را از یک لیست حذف کنیم؟

با استفاده از کلیدواژه del می توانیم یک یا چند مورد را از لیست حذف کنیم. حتی می توان لیست را به طور کامل حذف کند.

 

# Deleting list items
my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']

# delete one item
del my_list[2]

print(my_list)

# delete multiple items
del my_list[1:5]

print(my_list)

# delete entire list
del my_list

# Error: List not defined
print(my_list)

 

خروجی

['p', 'r', 'b', 'l', 'e', 'm']
['p', 'm']
Traceback (most recent call last):
  File "<string>", line 18, in <module>
NameError: name 'my_list' is not defined

 

ما می توانیم از متد ()remove برای حذف مورد داده شده یا از متد ()pop برای حذف یک مورد در فهرست داده شده استفاده کنیم.

در صورت عدم اندیس دهی، متد ()pop  آخرین عنصر را حذف و برمی گرداند. این به ما کمک می کند لیست ها را به صورت پشته پیاده سازی کنیم (اولین ورودی، آخرین خروجی).

همچنین می توانیم از متد ()clear  برای خالی کردن لیست استفاده کنیم

my_list = ['p','r','o','b','l','e','m']
my_list.remove('p')

# Output: ['r', 'o', 'b', 'l', 'e', 'm']
print(my_list)

# Output: 'o'
print(my_list.pop(1))

# Output: ['r', 'b', 'l', 'e', 'm']
print(my_list)

# Output: 'm'
print(my_list.pop())

# Output: ['r', 'b', 'l', 'e']
print(my_list)

my_list.clear()

# Output: []
print(my_list)

 

خروجی

['r', 'o', 'b', 'l', 'e', 'm']
o
['r', 'b', 'l', 'e', 'm']
m
['r', 'b', 'l', 'e']
[]

 

سرانجام، ما می توانیم با اختصاص دادن لیست خالی به برشی از عناصر، موارد موجود در لیست را حذف کنیم.

>>> my_list = ['p','r','o','b','l','e','m']
>>> my_list[2:3] = []
>>> my_list
['p', 'r', 'b', 'l', 'e', 'm']
>>> my_list[2:5] = []
>>> my_list
['p', 'r', 'm']

 

 

متد لیست در برنامه نویسی پایتون

روشهایی که در برنامه نویسی پایتون همراه با شی لیست موجود است، که در زیر آورده شده است.

از طریق () list.method قابل دسترسی هستند. برخی از روشها قبلاً در بالا استفاده شده است.

  • ()append – یک عنصر را به انتهای لیست اضافه کنید
  • ()extend  – تمام عناصر لیست را به لیست دیگر اضافه کنید
  • ()insert – قرار دادن یک عنصر در فهرست تعریف شده
  • ()remove – عنصری را از لیست حذف می کند
  • ()pop  – یک عنصر را در فهرست داده شده حذف و برمی گرداند
  • ()clear  – همه موارد را از لیست حذف می کند
  • ()count  – تعداد تعداد عناصری را که به عنوان آرگومان ارسال شده اند برمی گرداند
  • ()sort – مرتب سازی موارد در یک لیست به ترتیب صعودی
  • ()reverse – ترتیب موارد را در لیست معکوس کنید
  • ()copy  – یک نسخه Shallow Copy  از لیست را برمی گرداند

 

چند مثال از متدهای لیست پایتون:

# Python list methods
my_list = [3, 8, 1, 6, 0, 8, 4]

# Output: 1
print(my_list.index(8))

# Output: 2
print(my_list.count(8))

my_list.sort()

# Output: [0, 1, 3, 4, 6, 8, 8]
print(my_list)

my_list.reverse()

# Output: [8, 8, 6, 4, 3, 1, 0]
print(my_list)

 

خروجی

۱
۲
[۰, ۱, ۳, ۴, ۶, ۸, ۸]
[۸, ۸, ۶, ۴, ۳, ۱, ۰]

 

 

List comprehension: روشی برای ایجاد لیست جدید

List comprehension  یک روش ظریف و مختصر برای ایجاد یک لیست جدید از یک لیست موجود در پایتون است.

برای استفاده از List comprehension از دستور for درون براکت استفاده می شود.

در اینجا مثالی با استفاده از این روش آورده شده است

pow2 = [2 ** x for x in range(10)]
print(pow2)

 

خروجی

[۱, ۲, ۴, ۸, ۱۶, ۳۲, ۶۴, ۱۲۸, ۲۵۶, ۵۱۲]

 

این کد معادل است با:

pow2 = []
for x in range(10):
   pow2.append(2 ** x)

 

List comprehension می تواند به صورت اختیاری حاوی عبارتهای for یا if بیشتری باشد. یک عبارت  if  اختیاری می تواند موارد موجود در لیست جدید را فیلتر کند. در اینجا چند نمونه آورده شده است.

>>> pow2 = [2 ** x for x in range(10) if x > 5]
>>> pow2
[۶۴, ۱۲۸, ۲۵۶, ۵۱۲]
>>> odd = [x for x in range(20) if x % 2 == 1]
>>> odd
[۱, ۳, ۵, ۷, ۹, ۱۱, ۱۳, ۱۵, ۱۷, ۱۹]
>>> [x+y for x in ['Python ','C '] for y in ['Language','Programming']]
['Python Language', 'Python Programming', 'C Language', 'C Programming']

 

سایر عملیات لیست در پایتون
تست عضویت در لیست

ما می توانیم با استفاده از کلیدواژه in، بررسی کنیم که آیا موردی در لیست وجود دارد یا خیر.

my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm']

# Output: True
print('p' in my_list)

# Output: False
print('a' in my_list)

# Output: True
print('c' not in my_list)

 

خروجی

True
False
True

 

تکرار از طریق یک لیست

با استفاده از حلقه for می توانیم  هر مورد در لیست را تکرار کنیم.

for fruit in ['apple','banana','mango']:
    print("I like",fruit)

 

خروجی

I like apple
I like banana
I like mango

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی پایتون

  1. آموزش نصب و اجرای برنامه نویسی پایتون
  2. کلیدواژه ها و شناسه های برنامه نویسی پایتون
  3. دستورات، تورفتگی ها و کامنت ها در برنامه نویسی پایتون
  4. متغیرها، ثابت ها و لیترال ها در برنامه نویسی پایتون 
  5. انواع داده ها در برنامه نویسی پایتون
  6. تبدیل نوع در برنامه نویسی پایتون
  7. ورودی، خروجی و وارد کردن در برنامه نویسی پایتون
  8. عملگرها در برنامه نویسی پایتون
  9. نام و دامنه در برنامه نویسی پایتون
  10. دستور شرطی if…else در برنامه نویسی پایتون
  11. حلقه for در برنامه نویسی پایتون
  12. حلقه while در برنامه نویسی پایتون
  13. دستورات break و continue در برنامه نویسی پایتون
  14. دستور pass در برنامه نویسی پایتون
  15. توابع در برنامه نویسی پایتون
  16. آرگومان تابع در برنامه نویسی پایتون
  17. تابع بازگشتی در برنامه نویسی پایتون
  18. تابع بی نام/ تابع لامبدا در برنامه نویسی پایتون
  19. متغیرهای سراسری، محلی و غیر محلی در برنامه نویسی پایتون
  20. کلیدواژه global در برنامه نویسی پایتون
  21. ماژول های برنامه نویسی پایتون
  22. پکیج ها در برنامه نویسی پایتون
  23. اعداد و تبدیل نوع داده در برنامه نویسی پایتون 
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه