لیست (list)
برای کنارهم قرار دادن چندین داده با نوع مختلف، میتوان از لیست استفاده کرد. یکی از راههای ایجاد لیست، بکاربردن براکت در تعریف آن است:
cheeses = ['Cheddar', 'Edam', 'Gouda']
numbers = [17, 123]
empty = []
print(cheeses, numbers, empty)['Cheddar', 'Edam', 'Gouda'] [17, 123] []
لیست هم تایپ خاص خود را دارد.
print(type([]))<class 'list'>
اما همانطور که گفته بودیم، عناصر لیست میتوانند نوعهای متفاوت از هم داشته باشند:
multi_types_items = ['spam', 2.0, 5, [10, 20]]در دو مثال قبلی؛ تعداد عناصر لیست را به این شکل محاسبه میکنیم:
لیست cheeses دارای 3 عنصر است. لیست numbers دو عنصر دارد و لیست multi_types_items شامل 4 عنصر میشود. چراکه لیست داخلی که شامل عناصر 10 و 20 هست، در لیست اصلی، به عنوان یک عنصر و یا داده درنظرگرفته میشود.
برای تغییر مقادیر موجود در لیست، میبایست بتوانیم به هر داده دسترسی داشته باشیم، به این منظور از اندیس برای آدرسدهی استفاده میکنیم:
numbers = [17, 123]
numbers[1] = 5
print(numbers)[17, 5]
و یا برای اینکه بدانیم داده مورد نظر ما در لیست قرار گرفته یا خیر، میتوان از این روش استفاده کرد:
cheeses = ['Cheddar', 'Edam', 'Gouda']
print('Edam' in cheeses)True
و یا:
cheeses = ['Cheddar', 'Edam', 'Gouda']
'Brie' in cheesesFalse
کارکردن با عناصر لیست
در قطعه کد زیر، به ترتیب با استفاده از عملگرهای + و * آشنا میشویم و سپس نحوه برشهای مختلف لیست را یاد میگیریم:
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
print(c)[1, 2, 3, 4, 5, 6]
[1, 2, 3] * 3[1, 2, 3, 1, 2, 3, 1, 2, 3]
t = ['a', 'b', 'c', 'd', 'e', 'f']
t[1:3]['b', 'c']
t[:4]['a', 'b', 'c', 'd']
t[3:]['d', 'e', 'f']
متدهای لیست
برای اضافه کردن یک عنصر به انتهای لیست، میتوانیم از متد append() استفاده کنیم:
t = ['a', 'b', 'c']
t.append('d')
print(t)['a', 'b', 'c', 'd']
همچنین متد extend() یک لیست را به عنوان آرگومان ورودی دریافت میکند و آن را به انتهای لیست معرفی شده، اضافه میکند:
t1 = ['a', 'b', 'c']
t2 = ['d', 'e']
t1.extend(t2)
print(t1)['a', 'b', 'c', 'd', 'e']
برای مرتب کردن عناصر یک لیست، متد sort() در اختیار ماست:
t = ['d', 'c', 'e', 'b', 'a']
t.sort()
print(t)['a', 'b', 'c', 'd', 'e']
اگر چنانچه خواسته باشیم عنصری را از داخل یک لیست حذف کنیم، با دانستن اندیس موقعیت آن عنصر، میتوانیم از متد pop(i) استفاده کنیم:
t = ['a', 'b', 'c']
x = t.pop(1)
print(t)['a', 'c']
print(x)b
اگر در استفاده از دستور pop() اندیس استفاده نشود، این متد، آخرین عنصر آرایه را حذف خواهد کرد.
به کد زیر و نتیجه اجرای آن دقت کنید:
t = ['a', 'b', 'c']
del t[1]
print(t)['a', 'c']
به نظر شما تفاوت استفاده از متدهای pop(i) و del list_name[i] در چیست؟
بله، درست است که هر دو باعث حذف یک عنصر از لیست میشوند اما در استفاده از متد pop(i) عنصر حذف شده در اختیار ما خواهد بود. به این معنی که خروجی این متد، نمایانگر مقدار عنصر حذف شده است. اما در استفاده از دستور del list_name[i] عنصری که حذف شده دیگر در دسترس ما نخواهد بود.
حال به این سوال فکر کنید که اگر اندیس عنصر موردنظر برای حذف کردن را ندانیم، از چه روشی میتوانیم آن عنصر خاص را حذف کنیم؟ درواقع پایتون برای این منظور متد remove(item_value) را پیشنهاد میدهد که با ارسال مقدار عنصر موردنظر به عنوان آرگومان ورودی به این متد، میتوانیم آن را از لیست حذف کنیم:
t = ['a', 'b', 'c']
t.remove('b')
print(t)['a', 'c']
و یا برای حذف بیش از یک مقدار، با دانستن اندیس آنها میتوان از روش زیر استفاده کرد:
t = ['a', 'b', 'c', 'd', 'e', 'f']
del t[1:5]
print(t)['a', 'f']
برخی توابع مهم
در کدهای زیر نام و کاربرد برخی توابع مهم برای استفاده در لیستها معرفی شدهاند:
nums = [3, 41, 12, 9, 74, 15]
print(len(nums))6
print(max(nums))74
print(min(nums))3
print(sum(nums))154
print(sum(nums)/len(nums))25.666666666666668