Тізім әдістері
Өткен сабақта тізім жасап, элементтеріне қол жеткіздік. Бірақ нағыз өмірде тізім тірі: сыныпқа жаңа оқушы келеді (қосу), біреу ауысып кетеді (өшіру), тізімді әліпби бойынша реттеу керек (сұрыптау), «Айдос тізімде бар ма?» деген сұрақ туады (іздеу). Осының бәрін Python-ның дайын ӘДІСТЕРІ бір жолмен шешеді. Бүгін тізімнің он шақты «түймесін» үйренеміз — append-тен sort-қа дейін.
Әдіс — нысанға (тізімге) НҮКТЕ арқылы қолданылатын дайын әрекет:
тізім.әдіс(аргумент).
Функция мен әдістің айырмашылығына назар аудар: len(a) — функция (тізім жақшаның ІШІНДЕ), ал a.append(5) — әдіс (тізім нүктенің АЛДЫНДА). Әдіс — тізімнің «өз командасы».
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(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]
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() — тізімді ӨСУ ретімен сұрыптайды; 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() тізімнің ӨЗІН өзгертеді.
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-ның өзі өзгерді
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)).
- Әдіс — тізімнің «өз командасы»:
a.append(5)(нүкте арқылы). - Қосу: append — соңына, insert(i, x) — i орнына.
- Өшіру: remove(x) — мәнмен (біріншісін!), pop(i) — индекспен, мәнді қайтарады.
- Реттеу: sort() — өсу, sort(reverse=True) — кему, reverse() — тек аудару.
- Іздеу: in — бар ма, index — қайда, count — нешеу.