Листа је низ неколико променљивих, груписаних под истим именом. Уместо писања програма са много променљивих x0, x1, x2,... можете да дефинишете једну променљиву x и приступите њеним члановима x[0], x[1], x[2], итд. Још важније, можете да ставите друге изразе и променљиве у угласте заграде, попут x[i] и x[i+1]. То нам дозвољава да радимо са прозвољно великом количином података једноставно и ефикасно, помоћу малог кода.
Један начин прављења низа је постављање неколико вредности одвојених зарезима, у угласте заграде:
mojaLista = ["prva vrednost u listi", 1999, 4.5]
Овиме добијамо низ (листу) по имену mojaLista, са три елемента. Сваком елементу низа добија се додељује број који називамо његовим индексом: почетни елемент има индекс 0, следећи елемент има индекс 1, и тако даље. Појединачне променљиве које сачињавају листу имају имена
«imeListe»[«indeks»]
Дакле, у овом примеру, mojaLista[0] је променљива чија је вредност "prva vrednost u listi", a print(mojaLista[2]) би одштампало 4.5. Можете и да промените вредности чланова низа или да одштампате цео низ:
Као што можете да видите, brojevi[0] се понаша као променљива: има вредност и може бити промењена.
Сада покушајте да предвидите коначан резултат примера испод, а онда покрените код.
Честа грешка
Ако покушате да користите у низу у Python-у индекс низа који не постоји, јавиће се грешка:
У примеру изнад, пошто mojaLista има 4 елемента, а први индекс је 0, максимални могући индекс је 3. Ако затражимо индекс 4, 5, или неки већи број, добићемо грешку. |
Корисне и често коришћене операције
Дужина листе: len(«lista»)
Да бисмо утврдили број чланова неке листе, позваћемо функцију len() те листе.
Јесу ли листе исте као стрингови?
До сада сте можда приметили да операције са листама подсећају на операције са стринговима: оба користе функцију len() за дужину и оба користе X[«indeks»] за појединачне чланове. Међутим, главна разлика између њих је да појединачни чланови стринга (карактери) не могу бити промењени (бар не на начин на који се то ради са листама).
Повезивање листи
Можда се из лекције о стринговима сећате да је могуће користити + за спајање (повезивање) два стринга. Може се урадити исто са листама:
Слично, можете користити знак множења * да продужите листу понављањем.
Крај низа: Негативни индекси
Да бисмо добили последњи члан листе, користимо
«imeListe»[-1]
L[-k] враћа k-ти члан од краја листе;
max и sum
Функција max, са којом смо се раније упознали, може бити примењена и на листе бројева: враћа највећи број у листи. Слично, функција sum(L) враћа суму елемената у листи L.
Сечење листе се врши на сличан начин као сечење стринга. За низ:
primer = [0,1,2,3,4,5,6,7,8,9]
команда primer[4:8] ће означавати подниз са елементима 4 5 6 7. Погледајте у следећим примерима како се функционише сечење низа
Ако је други број у угластим заградама изостављен, онда се подразумева да подниз иде до краја низа. Ако је први број у угластим заградама изостављен, онда подниз иде од почетка низа. Ако су изостављени и почетни и крајњи број у угластим заградама, нпр. primer[:] , онда се добија цео низ, дакле primer[:] = primer
Ако се у угластим заградама налази три броја, трећи број означава корак. Нпр за primer[1:8:2], корак је 2, па ће резултат дати елементе са индексом 1, 3, 5 и 7. Корак може бити и негативан број, онда се иде уназад.
Петља у листи
Врло се често (као у претходној вежби) користи петља за пролазак кроз сваку вредност у листи. Ако je L листа, овај код
for x in L: «telo petlje»
ради следеће: прво x добија вредност првог елемента из листе L, и извршава се тело: онда у следећем кругу x представља другу вредност у L, и извршава се тело; такав поступак се наставља за све чланове L.
Ево примера штампања елемената у листи: