Asosiy qismga o‘tish

8. Ro‘yxatlar

Nazariya

Ro‘yxat

a = [3, 1, 4, 1, 5]
a = list(map(int, input().split()))
a = [0] * 10          # o‘nta nol

Indeks 0 dan boshlanadi. Manfiy indeks oxiridan sanaydi:

a[0]     # birinchi
a[-1]    # oxirgi
a[-2]    # oxiridan ikkinchi

Kesish (slice)

a[boshi:oxiri] — oxiri kirmaydi:

a[1:3]    # 1 va 2-indeksdagi elementlar
a[:3]     # boshidan uchtasi
a[2:]     # 2-indeksdan oxirigacha
a[::-1]   # teskari nusxa

Foydali funksiyalar va metodlar

YozuvNima qiladi
len(a)uzunlik
sum(a), min(a), max(a)yig‘indi, eng kichik, eng katta
a.append(x)oxiriga qo‘shadi
a.pop()oxirgisini olib tashlaydi va qaytaradi
a.sort()o‘zini saralaydi
sorted(a)saralangan yangi ro‘yxat
a.count(x)x necha marta uchraydi
a.index(x)birinchi uchragan joyi

a.sort() hech narsa qaytarmaydi (None), sorted(a) esa yangi
ro‘yxat beradi. b = a.sort() — tipik xato.

Nusxa va havola

b = a          # bu nusxa EMAS: b va a bitta ro‘yxat
b = a[:]       # nusxa
b = list(a)    # nusxa

Birinchi holatda b.append(1) qilsangiz, a ham o‘zgaradi.

Ro‘yxat yig‘uvchi (comprehension)

kvadratlar = [x * x for x in range(10)]
juftlar = [x for x in a if x % 2 == 0]

Misol

a = list(map(int, input().split()))
print(len(a), sum(a), max(a))
print(a[::-1])

Mashq masalalari

Nazorat savollari

1 Ro‘yxatning birinchi elementi qaysi indeksda? Bitta to‘g‘ri javob
2 Nima chiqadi? Kod nima chiqaradi
a = [3, 1, 4, 1, 5]
print(a[-1], a[1])
3 Nima chiqadi? Kod nima chiqaradi
a = [1, 2, 3, 4, 5]
print(a[1:3])
4 `b = a.sort()` dan keyin `b` da nima bo‘ladi? Bitta to‘g‘ri javob
5 `b = a` yozuvi ro‘yxatning nusxasini yaratadi. To‘g‘ri yoki noto‘g‘ri
6 Ro‘yxatni teskari qilib nusxalash uchun bo‘sh joyga nima yoziladi? Bo‘sh joyni to‘ldirish
teskari = a[____]
7 Qaysilari ro‘yxatni o‘zgartiradi? Bir nechta to‘g‘ri javob

Bir nechta javob to‘g‘ri bo‘lishi mumkin.

8 Nima chiqadi? Kod nima chiqaradi
a = [3, 1, 4, 1, 5]
print(a.count(1), max(a))
9 `len([x for x in range(10) if x % 3 == 0])` nechchi? Qisqa javob — yoziladi
10 `a = [0] * 5` nima yaratadi? Bitta to‘g‘ri javob

Javoblar serverda tekshiriladi. Katta-kichik harf, apostrof shakli va ortiqcha bo‘shliq ahamiyatsiz.