В Python списъците са подредени колекции. Те са важен компонент на програмния код. Списъците се отнасят за вградени езикови обекти. С тяхна помощ можете бързо и ефективно да обработвате голямо количество информация и структури от данни от всякаква сложност.
Списъците са гъвкави и променливи. тип данни. Те могат да бъдат с произволна дължина и да са неограничени количество информация. Като елементи на последователността е позволено да се използват низове, прости и реални числа, речници. Всяка променлива в Python се обработва отделно, изтрива или заменя.
Списъците имат определен набор от свойства, които ги отличават от другите типове данни:
Списъците могат да бъдат объркани със сродни структури от данни. Но в действителност те са контейнери за препратки към обекти, а не на техните копия. Те са като адресна книга. Всички елементи от списъка сочат към местоположението на желания обект. В това, Python списъците са подобни на C масиви, но са реализирани в интерпретатора.
Формално има три категории данни на езика. Това са числата, картите и последователностите, към които принадлежи типа на списъка. За всяка група има общ набор от операции. Например, събиране, изваждане и умножение за числови обекти или достъп до ключ към речници.
Последователностите също имат своите характерни операции:
Списъците имат по-широк спектър от възможности от низове в Python. Той е мощен инструмент за разработка с редица специфични функции, приложими само за списъка с типове.
Как изглеждат методите от списъка на практика:
Когато се извършва конкатенация от всяка страна на знака „+“, трябва да се намерят последователности от същия тип, в противен случай интерпретаторът ще покаже съобщение за грешка:
За да добавите низ и списък в Python, трябва да извършите предварително преобразуване за типа str:
Когато създавате списък в Python, трябва да се придържате към строги правила на синтаксиса. Всеки обект трябва да бъде заграден в квадратни скоби, а елементите да бъдат разделени със запетаи.
Итерацията е процес на повторение. В контекста на списъците, това е алтернативен напредък чрез елементите на обекта, който се повтаря. Например:
Ако итерацията е просто обиколка на всеки елемент, тогава генерирането е процес на създаване на нов обект от списък с типове. В Python, генераторите на списъци изглеждат като за цикли, но работят по-бързо и синтактично изглеждат много по-просто:
И в двата примера резултатът е идентичен. Но използването на генератора, кодът е много по-кратък и по-лесен. Този подход е напълно съвместим с Zen на Python. Това е Дзен, или кодът на езика, в който една от точките гласи: "Обикновено е по-добре, отколкото сложно."
Тези две операции са подобни по вид и ви позволяват да работите с отделни елементи от списък в Python. Но има значителна разлика. В резултат на индексирането се връща отделна част от последователността. И извличането на парче създава нов обект на списък:
Езиковите конструкции позволяват не само да се извличат, но и да се променят отделни елементи, като им се присвояват нови стойности. В резултат се връща един и същ списък само с различна променлива. Тази операция е подобна на присвояването на индекс на езика C. Интерпретаторът заменя старата препратка към обекта, посочен в офсет, с нов:
Това е доста сложна операция, която се осъществява на няколко етапа. Първо, интерпретаторът изтрива всички елементи вляво от оператора. В този пример това е "едно" и "осем". След това всички обекти отдясно на оператора се вмъкват в списъка, започвайки от левия край.
Описаният процес осигурява гъвкава работа с разрези. Броят на елементите, които трябва да бъдат премахнати и добавени, може да варира. Операцията е подходяща за премахване и подмяна на обекти, както и за разширяване на списъци. Това е доста мощен начин за работа с код. Но програмистите рядко го използват на практика, предпочитайки по-прости вмъквания, поп и премахване на инструкции.
Повечето от методите или функциите са насочени директно към промяна на обекта. Най-често срещаният е .append (). Той добавя елементи в края на списъка:
Друг също толкова популярен метод се нарича sort (). Предназначен за сортиране на списъци в Python. Методът преподрежда елементи с помощта на стандартни оператори за сравнение. Може да се използва и за по-сложни задачи, като се използват аргументи:
Примерът използва синтаксиса "name = value", за да премине настройките. Аргументът ключ ви позволява да зададете собствени параметри за сравнение. В този случай това са елементи с малка буква. Обратното означава „обратното”, т.е. в низходящ ред, не нарастващо.
При работа с тези методи трябва да се имат предвид следните характеристики: .sort () и .append () променят списъка, но не го връщате. Конструкцията my_list = List.sort () няма смисъл или резултат. Ето защо в най-новите версии на езика разработчиците въведоха функцията sorted (), която взема списък като аргумент:
Python предоставя допълнителни методи за извършване на специализирана обработка на списъци. Например, обратното се използва за промяна на реда на елементите. За да вмъкнете няколко елемента в края или да изтриете, трябва да използвате методите за разширяване и поп. Има и обратна функция, която прилича на сортиране, но се използва чрез извикване на списъка:
Всички разглеждани операции най-често се прилагат към списъци и са основни. Но има високо специализирани методи. Например, .copy (), който създава плитко копие на обект, и .count (), който връща броя на елементите. За да видите целия списък с функции, налични в Python, които са приложими към обекта на списъка, трябва да въведете help () или dir () в интерпретатора.