Ba'zan listning faqat bir qismini olish kerak bo'ladi. Masalan, birinchi 3 ta element yoki oxirgi 2 ta element. Buning uchun slicing (kesish) ishlatiladi.
Slicing sintaksisi: list[start:end] — start indeksdan boshlab end indeksgacha (end kirmaydi) elementlarni qaytaradi.
# Slicing asoslari
sonlar = [10, 20, 30, 40, 50, 60]
# Indeks 1 dan 4 gacha (4 kirmaydi)
qism = sonlar[1:4]
print(qism) # [20, 30, 40]
# Indeks 0 dan 3 gacha
boshi = sonlar[0:3]
print(boshi) # [10, 20, 30]start yoki end qoldirish mumkin — Python avtomatik ravishda boshidan yoki oxirigacha oladi:
sonlar = [10, 20, 30, 40, 50, 60]
# Boshidan 3-chi indeksgacha (start=0 qoldirildi)
print(sonlar[:3]) # [10, 20, 30]
# 3-chi indeksdan oxirigacha (end qoldirildi)
print(sonlar[3:]) # [40, 50, 60]
# Butun listni nusxalash
print(sonlar[:]) # [10, 20, 30, 40, 50, 60]Manfiy indekslar bilan ham slicing ishlaydi — bu oxirgi elementlarni olish uchun juda qulay:
sonlar = [10, 20, 30, 40, 50, 60]
# Oxirgi 2 ta element
print(sonlar[-2:]) # [50, 60]
# Oxirgi 3 ta element
print(sonlar[-3:]) # [40, 50, 60]
# Birinchidan oxiridan ikkinchisigacha
print(sonlar[:-1]) # [10, 20, 30, 40, 50]Amaliy misol — o'quvchilar baholari bo'yicha slicing:
# O'quvchi baholari (eski testdan yangi testga)
baholar = [72, 68, 80, 85, 90, 95]
# Birinchi 3 ta test natijasi
dastlabki = baholar[:3]
print("Dastlabki natijalar:", dastlabki) # [72, 68, 80]
# Oxirgi 3 ta test natijasi
so_nggi = baholar[-3:]
print("So'nggi natijalar:", so_nggi) # [85, 90, 95]
# O'rta qism (2-chi va 3-chi)
orta = baholar[2:4]
print("O'rta natijalar:", orta) # [80, 85]Muhim qoidalar:
list[start:end] — start kiradi, end kirmaydilist[:n] — boshidan n ta elementlist[n:] — n-chi indeksdan oxirigachalist[-n:] — oxirgi n ta elementSlicing bilan ishlash
Quyidagi amallarni bajaring:
sonlar = [10, 20, 30, 40, 50, 60] listi berilgan[10, 20, 30][50, 60]Bu mashq orqali siz:
list[:n] va list[-n:] sintaksisini o'rganasiz