Loading...

Тизмелер – Кесимдер(списки-срезы)

Тизмелер – Кесимдер(списки-срезы)

Элементти индекс боюнча алыңыз

Башка программалоо тилдериндегидей эле, биз индексти алабыз:

@A@a = [1, 3, 9, 8]

a[0]

//1

a[3]

//8

a[4]@A@

@E@Traceback (most recent call last):

  File "<pyshell#15>", line 1, in <module>

    a[4]

IndexError: list index out of range@E@

 

Көптөгөн башка тилдердегидей эле, элементти номерлөө нөлдөн башталат. Болбогон индекске кирүүгө аракет IndexError өзгөчөлүгүн жаратат.

Бул мисалда a өзгөрмө тизмеси болгон, бирок сиз башка типтерден индекс боюнча элементти ала аласыз: саптар, кортеждер.

Python ошондой эле терс индекстерди колдойт, номерлөө төмөнкүдөй аяктайт:

@A@a = [1, 3, 9, 8]

a[-1]

//8

a[-4]

//1

a[-5]@A@

@E@Traceback (most recent call last):

  File "<pyshell#19>", line 1, in <module>

    a[-5]

IndexError: list index out of range@E@

 

 Кесимдер

Pythonдо индекстерден тышкары кесимдер да бар.

item[START:STOP:STEP] - STEP кадамы менен START номеринен STOP (аны кошпогондо) чейин кесим алат. Демейки боюнча, START = 0, STOP = объекттин узундугу, STEP = 1. Демек, кээ бир (жана, балким, бардык) параметрлерди өткөрүп жиберүүгө болот.

@A@a = [2,5,4,2,5,6,10]

a[:]

// [2, 5, 4, 2, 5, 6, 10]

a[1:]

// [5, 4, 2, 5, 6, 10]

a[:3]

// [2, 5, 4]

a[::2]

// [2, 4, 5, 10]@A@

 

Ошондой эле, бардык бул параметрлер терс болушу мүмкүн:

@A@a = [1, 3, 8, 7]

a[::-1]

// [7, 8, 3, 1]

a[:-2]

// [1, 3]

a[-2::-1]

// [8, 3, 1]

a[1:4:-1]

[]@A@

Акыркы мисалда тизме бош, анткени START < STOP жана STEP терс.

Эгерде маанилердин диапазону объекттен тышкары болсо, ушундай болот:

@A@a = [1, 3, 8, 7]

a[10:20]

// []@A@

Ошондой эле, кесимдерди колдонуу менен элементтерди гана чыгарбастан, элементтерди кошуп жана алып салсаңыз болот (албетте, өзгөрүлүүчү ырааттуулук үчүн гана).

@A@a = [1, 3, 8, 7]

a[1:3] = [0, 0, 0]

a

// [1, 0, 0, 0, 7]

del a[:-3]

a

// [0, 0, 7]@A@