ГЛАВА 2, 3, 4, 5. 2 тарау. Python Негіздері Бадарламаларды жазуа кіріспе
Скачать 242.51 Kb.
|
3 ТАРАУ Тізімдер, түйіндер және сөздіктер Тізім Деректер жиынтығымен жұмыс істеу үшін Python тізімдер, түйіндер және сөздіктер сияқты кіріктірілген түрлерін ұсынады. Тізім (тізім) элементтер жиынтығын немесе реттілігін сақтайтын деректер түрін білдіреді. Төртбұрышты жақшада ([]) тізімді құру үшін оның барлық элементтері үтір арқылы тізімделеді. Көптеген бағдарламалау тілдерінде массив деп аталатын ұқсас мәліметтер құрылымы бар. Мысалы, сандар тізімін анықтаңыз:
Сондай-ақ, тізімді құру үшін list конструкторын пайдалануға болады():
Бұл тізім анықтамаларының екеуі де ұқсас-олар бос тізімді жасайды. Тізімді құру үшін list конструкторы басқа тізімді қабылдай алады:
Тізім элементтеріне жүгіну үшін тізімдегі Элемент нөмірін білдіретін индекстерді пайдалану керек. Индекстер нөлден басталады. Яғни, екінші элементте 1 индексі болады. Элементтерге қол жеткізу үшін -1-ден бастап теріс индекстерді қолдануға болады. Яғни, соңғы элементте -1 индексі, соңғы - -2 және т.б. болады.
Егер сіз бірдей мәнді бірнеше рет қайталайтын тізімді жасауыңыз керек болса, онда жұлдызша *таңбасын пайдалануға болады. Мысалы, алты бестен тұратын тізімді анықтаңыз:
Сонымен қатар, егер бізге сандардың дәйекті тізімі қажет болса, оны жасау үшін үш пішінді range функциясын қолдану ыңғайлы: range (end): 0-ден end санына дейінгі сандар жиынтығы жасалады range( start, end): start санынан end санына дейінгі сандар жиынтығы жасалады range( start, end, step): start санынан бастап, қадаммен аяқталатын санға дейінгі сандар жиынтығы жасалады
Мысалы, тізімнің келесі екі анықтамасы ұқсас болады, бірақ range функциясы арқылы біз код көлемін азайтамыз:
Тізімде тек бірдей нысандар болуы міндетті емес. Біз бір уақытта бір тізімге жолдарды, сандарды, басқа деректер түрлерінің нысандарын орналастыра аламыз:
Элементтердің үстінен қайталау Элементтерді санау үшін Сіз циклді де, циклді де қолдана аласыз. Цикл арқылы санау:
Мұнда range функциясының орнына біз қол жетімді компаниялар тізімін бірден алмастыра аламыз. While циклі арқылы сұрыптау:
Len () функциясын пайдаланып санау үшін біз тізімнің ұзындығын аламыз. Есептегішті пайдаланып, мен санауыштың мәні тізімнің ұзындығына тең болғанша элементті шығарады. Тізімдерді салыстыру Екі тізім бірдей элементтер жиынтығын қамтыса, тең деп саналады:
Бұл жағдайда екі тізім де тең болады. Тізімдермен жұмыс істеу әдістері мен функциялары Элементтерді басқару үшін тізімдерде бірқатар әдістер бар. Олардың кейбіреулері: append(item): item элементін тізімнің соңына қосады insert (index, item): index индексінің тізіміне item элементін қосады remove(item) : item элементін жояды. Элементтің Бірінші енгізуі ғана жойылады. Егер элемент табылмаса, ValueError ерекшелік жасайды clear (): тізімнен барлық элементтерді жою index(item): item элементінің индексін қайтарады. Егер элемент табылмаса, ValueError ерекшелік жасайды pop ([index]): index индексі бойынша элементті жояды және қайтарады. Егер индекс берілмесе, онда ол соңғы элементті жояды. count (item): item элементінің пайда болу санын тізімге қайтарады sort ([key]): элементтерді сұрыптайды. Әдепкі бойынша өсу бойынша сұрыптайды. Бірақ key параметрімен сұрыптау функциясын бере аламыз. reverse (): тізімдегі барлық элементтерді кері ретпен орналастырады Сонымен қатар, Python тізімдермен жұмыс істеу үшін бірқатар кіріктірілген функцияларды ұсынады: len (тізім): тізімнің ұзындығын қайтарады sortired (тізім, [key]): сұрыпталған тізімді қайтарады min (тізім): тізімнің ең кіші элементін қайтарады max (list): тізімнің ең үлкен элементін қайтарады Элементтерді қосу және жою Элементті қосу үшін append() және insert әдістері қолданылады, ал жою үшін remove(), pop() және clear () әдістері қолданылады. Әдістерін пайдалану:
Элементтің болуын тексеру Егер белгілі бір элемент табылмаса, remove және index әдістері ерекше жағдай туғызады. Мұндай жағдайды болдырмау үшін, элементпен жұмыс жасамас бұрын, оның бар-жоғын in кілт сөзімен тексеруге болады:
Элементтер ішіндегі өрнек егер элементтер элементтер тізімінде болса, ШЫН мәнін қайтарады. Сондықтан, if item in companies дизайны тізімде элементтің болуына байланысты келесі нұсқаулар блогын орындай алады. Оқиғаларды есептеу Егер тізімде осы немесе басқа элемент қанша рет бар екенін білу қажет болса, count() әдісін қолдануға болады:
Сұрыптау Өсу бойынша сұрыптау үшін sort() әдісі қолданылады:
Егер деректерді кері ретпен сұрыптау қажет болса, сұрыпталғаннан кейін reverse() әдісін қолдана аламыз:
Сұрыптау кезінде іс жүзінде екі объект салыстырылады және олардың қайсысы "кішірек", "үлкенірек"алдына қойылады. "Көбірек" және "аз" ұғымдары өте шартты. Егер сандар үшін бәрі қарапайым болса-сандар өсу ретімен реттелген болса, онда жолдар мен басқа нысандар үшін жағдай күрделірек. Атап айтқанда, жолдар бірінші таңбалар бойынша бағаланады. Егер бірінші таңбалар тең болса, екінші таңбалар және т.б. бағаланады. Сандық таңба алфавиттік бас таңбадан гөрі "аз" деп саналады, ал бас таңба кіші әріптен кіші болып саналады. Жолдарды салыстыру туралы толығырақ мақалада жолдармен операциялар сипатталған. Осылайша, егер тізім жоғарғы және төменгі регистрдегі жолдарды біріктірсе, онда біз дұрыс емес нәтижелерге қол жеткізе аламыз, өйткені біз үшін "bob" жолы "Tom"жолына дейін тұруы керек. Стандартты сұрыптау әрекетін өзгерту үшін функция параметрі ретінде sort () әдісіне өтуге болады:
Сұрыптау әдісінен басқа, біз екі формасы бар кірістірілген sorted функциясын қолдана аламыз: sorted (list): list тізімін сұрыптайды sorted (list, key): list тізімін элементтерге key функциясын қолдану арқылы сұрыптайды
Бұл функцияны пайдалану кезінде бұл функция сұрыпталған тізімді өзгертпейтінін және барлық сұрыпталған элементтерді нәтиже ретінде қайтарылатын жаңа тізімге енгізетінін ескеру қажет. Минималды және максималды мәндер Кірістірілген Python min() және max () функциялары сәйкесінше минималды және максималды мәндерді табуға мүмкіндік береді:
Тізімдерді көшіру Тізімдерді көшіру кезінде тізімдер өзгеретін (өзгеретін) түрді білдіретінін ескеру керек, сондықтан егер екі айнымалы да бірдей тізімді көрсетсе, онда бір айнымалының өзгеруі басқа айнымалыға да әсер етеді:
Бұл "беттік көшіру" деп аталады (shallow copy). Әдетте, мұндай мінез-құлық жағымсыз. Элементтерді көшіру үшін, бірақ сонымен бірге айнымалылар әртүрлі тізімдерді көрсетсе, терең көшіру керек (терең көшіру). Ол үшін кірістірілген copy модулінде анықталған deepcopy () әдісін қолдануға болады:
Тізімнің бір бөлігін көшіру Егер сіз бүкіл тізімді емес, оның белгілі бір бөлігін ғана көшіруіңіз керек болса, онда біз арнайы синтаксисті қолдана аламыз. ол келесі нысандарды қабылдай алады: list [: end]: end параметрі арқылы тізім көшірілетін элемент индексі беріледі list [start: end]: start параметрі элементтерді көшіру керек элементтің индексін көрсетеді list [start: end : step]: step параметрі элементтер тізімнен көшірілетін қадамды көрсетеді. Әдепкі бойынша, бұл параметр 1-ге тең.
Тізімдерді қосу Тізімдерді біріктіру үшін қосу операциясы қолданылады (+):
Тізімдер тізімі Тізімдер стандартты жолдар, сандар сияқты деректерден басқа, басқа тізімдерді де қамтуы мүмкін. Мұндай тізімдерді кірістірілген тізімдер жолдар ретінде әрекет ететін кестелермен байланыстыруға болады. Мысалы:
Кірістірілген тізім элементіне жүгіну үшін бірнеше индекстерді пайдалану керек: users [0][1] - бірінші кірістірілген тізімнің екінші элементіне жүгіну. Жалпы тізімді, сондай-ақ кірістірілген тізімдерді қосу, жою және өзгерту әдеттегі (бір өлшемді) тізімдерге ұқсас:
Ішкі тізімдерді санау:
Консольді шығару: Tom | 29 | Alice | 33 | Bob | 27 | |