Лекция · 4.2

Тізім әдістері

Өткен сабақта тізім жасап, элементтеріне қол жеткіздік. Бірақ нағыз өмірде тізім тірі: сыныпқа жаңа оқушы келеді (қосу), біреу ауысып кетеді (өшіру), тізімді әліпби бойынша реттеу керек (сұрыптау), «Айдос тізімде бар ма?» деген сұрақ туады (іздеу). Осының бәрін Python-ның дайын ӘДІСТЕРІ бір жолмен шешеді. Бүгін тізімнің он шақты «түймесін» үйренеміз — append-тен sort-қа дейін.

Әдіс деген не
Анықтама
Әдіс — нысанға (тізімге) НҮКТЕ арқылы қолданылатын дайын әрекет: тізім.әдіс(аргумент).

Функция мен әдістің айырмашылығына назар аудар: len(a) — функция (тізім жақшаның ІШІНДЕ), ал a.append(5) — әдіс (тізім нүктенің АЛДЫНДА). Әдіс — тізімнің «өз командасы».

📱
Аналогия: тізім — телефондағы контактілер қосымшасы, әдістер — оның түймелері: «қосу» (append), «өшіру» (remove), «сұрыптау» (sort), «іздеу» (index). Түймені басасың — қосымша өзі істейді.
Қосу: append және insert
Анықтама
append(x) — x элементін тізімнің СОҢЫНА қосады. insert(i, x) — x-ті i индексіне КІРІСТІРЕДІ (қалғандары оңға ысырылады).
a = [10, 20, 30]
a.append(40)      # [10, 20, 30, 40]
a.insert(1, 99)   # [10, 99, 20, 30, 40]

append — ең жиі қолданылатын әдіс: бос тізімді циклмен толтырудың стандартты жолы:

a = []
for i in range(5):
    san = int(input())
    a.append(san)
Өшіру: remove және pop
Анықтама
remove(x) — x МӘНІНІҢ бірінші кездесуін өшіреді. pop(i) — i ИНДЕКСТЕГІ элементті өшіріп, мәнін ҚАЙТАРАДЫ; индекс берілмесе — соңғысын алады. clear() — бәрін өшіреді.
a = [5, 2, 5, 8]
a.remove(5)     # [2, 5, 8] — бірінші 5 өшті
x = a.pop()     # x = 8, a = [2, 5]
y = a.pop(0)    # y = 2, a = [5]
⚠️
Жиі қателер: remove мен pop-ты шатастыру — remove МӘНмен («нені өшір»), pop ИНДЕКСпен («қай орыннан өшір») жұмыс істейді. Тізімде жоқ мәнді remove қылсаң — ValueError; remove ТЕК БІРІНШІ кездесуді өшіреді, бәрін емес!
Қосымша
extend(тізім) — бір тізімнің БАРЛЫҚ элементтерін екінші тізімнің соңына тіркейді (append сияқты бір элемент емес, бірнешеуін бірден қосады). del a[i] — i индекстегі элементті жоятын оператор (әдіс емес, нүктесіз жазылады).
a = [1, 2, 3]
a.extend([4, 5])   # [1, 2, 3, 4, 5]

b = [10, 20, 30]
del b[1]           # [10, 30] — 20 жойылды

Абайла: a.append([4, 5]) деп жазсаң, тізімнің ІШІНЕ тізім қосылады: [1, 2, 3, [4, 5]] — бұл қате нәтиже болуы мүмкін. Бірнеше элементті бірден қосу керек болса — тек extend.

Реттеу: sort және reverse
Анықтама
sort() — тізімді ӨСУ ретімен сұрыптайды; sort(reverse=True) — КЕМУ ретімен. reverse() — сұрыптамай, тек ретін керісінше аударады.
a = [3, 1, 4, 1, 5]
a.sort()                # [1, 1, 3, 4, 5]
a.sort(reverse=True)    # [5, 4, 3, 1, 1]

b = ['алма', 'өрік', 'банан']
b.sort()                # әліпби бойынша

3-бөлімдегі Excel сұрыптауы есіңде ме? sort() — соның кодтағы бейнесі: өсу/кему, сандар да, мәтін де (әліпби бойынша). Тек бір айырма: sort() тізімнің ӨЗІН өзгертеді.

⚠️
Қате: reverse() «кему ретімен сұрыптайды» деу. ЖОҚ! reverse() жай ғана аударады: [3, 1, 4] → [4, 1, 3] — реттелген жоқ. Кему сұрыптау — sort(reverse=True).
Маңызды айырма
sort() — тізімнің ӨЗІН өзгертеді (нәтижесі жоқ, None қайтарады). sorted(a) — ЖАҢА сұрыпталған тізім қайтарады, ал бастапқы a өзгеріссіз қалады.
a = [3, 1, 2]
b = sorted(a)   # b = [1, 2, 3], a = [3, 1, 2] — a өзгермеді!

a.sort()          # a = [1, 2, 3] — енді a-ның өзі өзгерді
Іздеу: in, index, count
Анықтама
x in тізім — бар/жоқ тексерісі (True/False). index(x) — x-тің бірінші индексі. count(x) — x-тің кездесу саны.
a = [3, 1, 4, 1, 5]
print(4 in a)        # True
print(a.index(1))    # 1 — бірінші 1-дің индексі
print(a.count(1))    # 2 — 1 екі рет кездеседі

if 7 in a:
    print('Табылды')
else:
    print('Жоқ')

Абайла: тізімде жоқ мәнге index() қолдансаң — ValueError. Сондықтан алдымен in-мен тексеру — жақсы әдет: if x in a: print(a.index(x)).

🎯 ҰБТ байланысы
Тізім әдістері — код нәтижесін анықтау есептерінің негізі.
1
append/insert, remove/pop жұптарын айыру: соңына vs орынға; мәнмен vs индекспен.
2
remove тек БІРІНШІ кездесуді өшіреді.
3
reverse() ≠ кему сұрыптау; кему — sort(reverse=True).
4
Әдістер тізбегінен кейінгі соңғы күйді қадамдап есептеу.
Сабақ қорытындысы
  • Әдіс — тізімнің «өз командасы»: a.append(5) (нүкте арқылы).
  • Қосу: append — соңына, insert(i, x) — i орнына.
  • Өшіру: remove(x) — мәнмен (біріншісін!), pop(i) — индекспен, мәнді қайтарады.
  • Реттеу: sort() — өсу, sort(reverse=True) — кему, reverse() — тек аудару.
  • Іздеу: in — бар ма, index — қайда, count — нешеу.