AXV

List: o‘zgaruvchan ro‘yxat

Yaratamiz, indeks bilan olamiz, qo‘shamiz va o‘chiramiz

9-sinfAdvanced Back-end va DevOps4-hafta · 12-dars

Bugun nimalarni o‘rganamiz?

List nima?

Tartibli, turli tipli, mutable

Indeks va slicing

String bilan bir xil qoidalar

5 ta metod

append, insert, remove, pop, clear

Muammo: 30 ta o‘quvchi - 30 ta o‘zgaruvchi?

Alohida o‘zgaruvchilar

fan1 = "Matematika", fan2 = "Fizika", fan3 = ... - har yangi fan uchun yangi o‘zgaruvchi.

Bitta list

fanlar = ["Matematika", "Fizika", "Informatika"] - qo‘shish ham, o‘chirish ham oson.

01

List nima?

Tartibli (ordered) elementlar to‘plami

List xususiyatlari

[1, "Ali", 3.14, True] Tartibliindeks bor Turli tiplarson, matn, bool Mutableo‘zgaruvchan

List yaratish (1.57, 1.58-rasm)


a = [10, 20, 30]
b = ["olma", "banan", "gilos"]
c = [1, "Ali", 3.14, True]   # turli tiplar
bosh = []                    # bo'sh list
        
Kvadrat qavs [ ], elementlar orasida vergul.
02

Indeks va slicing

String’dagi bilan bir xil (1.59, 1.60-rasm)

List indekslari

01234 "a" "b" "c" "d" "e" -5-4-3-2-1 a[1:4] -> ['b', 'c', 'd']

Barcha kesishlar: pastga

Slicing: kodda


a = ["a", "b", "c", "d", "e"]
print(a[0])      # a
print(a[-1])     # e
print(a[1:4])    # ['b', 'c', 'd']
print(a[:3])     # ['a', 'b', 'c']
print(a[::2])    # ['a', 'c', 'e']
print(a[::-1])   # ['e', 'd', 'c', 'b', 'a']
          

List o‘zgaruvchan - string esa yo‘q (1.61-rasm)

string

s = "Python"
s[0] = "J"
-> TypeError
VS

list

a = [10, 20, 30]
a[1] = 99
-> [10, 99, 30]

Mini-test

a = [4, 5, 3]; a[2] = 5; print(a) nima chiqaradi?

List mutable: 2-indeksdagi 3 o‘rniga 5 yozildi.
03

List metodlari

Qo‘shish va o‘chirish (1.62-1.66-rasm)

append() va insert() (1.62, 1.63-rasm)

a.append(3) 1 2 3oxiriga qo‘shadi a.insert(1, 99) 1 99 2 3 list.insert(index, value)qolganlari o‘ngga suriladi

remove(), pop(), clear() (1.64-1.66-rasm)

[1, 2, 2, 3].remove(2) 1 2 2 3 -> [1, 2, 3] (birinchi 2 o‘chdi) x = [10, 20, 30].pop() 10 20 30 x = 30, qoldi [10, 20] a.clear() [ ]bo‘sh list

Metodlar ketma-ket


a = [1, 2]
        

Metodlar ketma-ket


a = [1, 2]
a.append(3)       # [1, 2, 3]
a.insert(0, 0)    # [0, 1, 2, 3]
a.remove(2)       # [0, 1, 3]
x = a.pop()       # x = 3, a = [0, 1]
a.clear()         # []
        

remove() yoki pop()?

Qiymatni bilasiz

Lekin qayerdaligini bilmaysiz -> remove("Adabiyot")

Indeksni bilasiz

Va olingan qiymat kerak -> odam = navbat.pop(0)

Hammasini o‘chirish

clear() -> []

Metod - vazifa. Bosing

append(v)

bosing

oxiriga qo‘shadi

insert(i, v)

bosing

i-indeksga qo‘shadi

remove(v)

bosing

qiymat bo‘yicha birinchisini o‘chiradi

pop() / pop(i)

bosing

oxirgisini / i-indeksdagini olib tashlaydi

clear()

bosing

hammasini o‘chiradi

Bashorat qiling

a = [1, 2, 2, 3]; a.remove(2); x = a.pop(0); print(x, a)

remove(2) -> [1, 2, 3]; pop(0) 1 ni oladi -> [2, 3].

Mini-loyiha: talabaning fanlari


ism = "Ali Valiyev"
fanlar = ["Matematika", "Fizika", "Informatika"]
fanlar.append("Ingliz tili")
fanlar.insert(1, "Adabiyot")
fanlar.remove("Fizika")
print(ism, "fanlari:", fanlar, "| jami:", len(fanlar))
        

Odatiy xatolar

a[10]

Bunday indeks yo‘q -> IndexError

remove(99)

Bunday qiymat yo‘q -> ValueError

insert(99)

2 ta argument kerak: indeks va qiymat

0
asosiy metod

Amaliy topshiriq 20 daqiqa

Oson["olma", "banan", "gilos"]: 0- va -1-elementni chiqaring, oxiriga "nok" qo‘shing.
O'rta[10, 20, 30] boshiga 5 ni kiriting, oxirgisini pop() qilib chiqaring.
QiyinTalabaning fanlari: append, insert, remove, pop - har qadamdan keyin ro‘yxatni chiqaring.

Xulosa

Bugun o‘rgandik

List: tartibli, turli tipli, mutable. Indeks va slicing. append, insert, remove, pop, clear.

Uyga vazifa

list_mashq.py: filmlar, metodlar zanjiri, talabaning fanlari.

Keyingi hafta: tuple, set va dict.