Програмиране на Python. Списък в Python: основни операции

01.03.2020

В Python списъците са подредени колекции. Те са важен компонент на програмния код. Списъците се отнасят за вградени езикови обекти. С тяхна помощ можете бързо и ефективно да обработвате голямо количество информация и структури от данни от всякаква сложност. python списък

Свойства и характеристики на обекта в списъка

Списъците са гъвкави и променливи. тип данни. Те могат да бъдат с произволна дължина и да са неограничени количество информация. Като елементи на последователността е позволено да се използват низове, прости и реални числа, речници. Всяка променлива в Python се обработва отделно, изтрива или заменя.

Списъците имат определен набор от свойства, които ги отличават от другите типове данни:

  • Това са групи от обекти с подредено позициониране отляво надясно.
  • Списъците осигуряват достъп чрез отместване, т.е. по номер на обект.
  • В Python списъците са хетерогенни. Последователността може да включва обекти от различен тип, включително номера, карти, низове, файлове.
  • Списъците са категоризирани като променливи обекти с неограничен брой гнездене.

Списъците могат да бъдат объркани със сродни структури от данни. Но в действителност те са контейнери за препратки към обекти, а не на техните копия. Те са като адресна книга. Всички елементи от списъка сочат към местоположението на желания обект. В това, Python списъците са подобни на C масиви, но са реализирани в интерпретатора. python низ

Основни операции по последователност

Формално има три категории данни на езика. Това са числата, картите и последователностите, към които принадлежи типа на списъка. За всяка група има общ набор от операции. Например, събиране, изваждане и умножение за числови обекти или достъп до ключ към речници.

Последователностите също имат своите характерни операции:

  • достъп до елемента, използвайки целочислени индекси __getitem __ ();
  • определяне на дължината __len __ ();
  • конкатенация с оператор "+";
  • парче извличане [:].

Списъци в действие

Списъците имат по-широк спектър от възможности от низове в Python. Той е мощен инструмент за разработка с редица специфични функции, приложими само за списъка с типове.

Как изглеждат методите от списъка на практика:

  • >>> my_list = ["one", "2", "three"] # създава нов списък;
  • >>> my_list;
  • ["Едно", "2", "три"];
  • >>> len (my_list);
  • 3 # интерпретаторът връща дължината;
  • >>> my_list + [1, 2, 3] # изпълнява конкатенация;
  • ["Едно", "2", "три", 1, 2, 3];
  • >>> my_list * 2 # повторение;
  • ["Едно", "2", "три", "едно", "2", "три"].

Когато се извършва конкатенация от всяка страна на знака „+“, трябва да се намерят последователности от същия тип, в противен случай интерпретаторът ще покаже съобщение за грешка:

  • >>> [1, 2, 3] + 3.14 # TypeError: може да свързва само списък (не "float") към списък.

За да добавите низ и списък в Python, трябва да извършите предварително преобразуване за типа str:

  • >>> second_list = list ("string") # трансформира обект "string";
  • >>> second_list;
  • ["S", "t", "p", "o", "k", "a"] # интерпретатор връща списък;
  • >>> second_list + my_list;
  • ["S", "t", "p", "o", "k", "a", "one", "2", "three"].

Когато създавате списък в Python, трябва да се придържате към строги правила на синтаксиса. Всеки обект трябва да бъде заграден в квадратни скоби, а елементите да бъдат разделени със запетаи. списък за сортиране на python

Какво представляват генераторите за итерация и списък?

Итерацията е процес на повторение. В контекста на списъците, това е алтернативен напредък чрез елементите на обекта, който се повтаря. Например:

  • >>> 3 в [1, 2, 3] # проверете дали посоченият елемент е включен;
  • Вярно;
  • >>> за x в [1, 2, 3, 4]: # изпълнява итерация;
  • печат (x);
  • 1;
  • 2;
  • 3;
  • 4.

Ако итерацията е просто обиколка на всеки елемент, тогава генерирането е процес на създаване на нов обект от списък с типове. В Python, генераторите на списъци изглеждат като за цикли, но работят по-бързо и синтактично изглеждат много по-просто:

  • >>> List_1 = [c * 4 за c в "SPAM"] # това е как изглежда поколението;
  • >>> Списък_1;
  • [“SSSS”, “PPPP”, “AAAA”, “MMMM”];
  • >>> List_2 = [];
  • >>> за c в "SPAM": # подобна команда за генериране;
  • List_2.append (c * 4) # list.append () добавя нови елементи;
  • >>> Списък_2;
  • [“SSSS”, “PPPP”, “AAAA”, “MMMM”].

И в двата примера резултатът е идентичен. Но използването на генератора, кодът е много по-кратък и по-лесен. Този подход е напълно съвместим с Zen на Python. Това е Дзен, или кодът на езика, в който една от точките гласи: "Обикновено е по-добре, отколкото сложно." генератор на питон

Извличане на резени и достъп до индекс

Тези две операции са подобни по вид и ви позволяват да работите с отделни елементи от списък в Python. Но има значителна разлика. В резултат на индексирането се връща отделна част от последователността. И извличането на парче създава нов обект на списък:

  • >>> List1 = ["спам", "Спам", "СПАМ!"]
  • >>> List1 [2] # offset започва от нула
  • "SPAM!"
  • >>> List1 [-2] # отрицателно отместване: преброени отдясно
  • "Спам"
  • >>> Списък [1:] # операция за извличане на парчета връща раздели на обекти
  • ["Спам", "СПАМ!"]

Как действа операцията по извличането на парче и неговите възможности

Езиковите конструкции позволяват не само да се извличат, но и да се променят отделни елементи, като им се присвояват нови стойности. В резултат се връща един и същ списък само с различна променлива. Тази операция е подобна на присвояването на индекс на езика C. Интерпретаторът заменя старата препратка към обекта, посочен в офсет, с нов:

  • >>> my_list = ["един", "осем", "сто"];
  • >>> my_list [0: 2] = ["деветдесет и осем", "деветдесет и девет"];
  • >>> my_list;
  • ["Деветдесет и осем", "деветдесет и девет", "сто".

Това е доста сложна операция, която се осъществява на няколко етапа. Първо, интерпретаторът изтрива всички елементи вляво от оператора. В този пример това е "едно" и "осем". След това всички обекти отдясно на оператора се вмъкват в списъка, започвайки от левия край.

Описаният процес осигурява гъвкава работа с разрези. Броят на елементите, които трябва да бъдат премахнати и добавени, може да варира. Операцията е подходяща за премахване и подмяна на обекти, както и за разширяване на списъци. Това е доста мощен начин за работа с код. Но програмистите рядко го използват на практика, предпочитайки по-прости вмъквания, поп и премахване на инструкции. списък с функции на python

Специфични методи на обекти от тип списък

Повечето от методите или функциите са насочени директно към промяна на обекта. Най-често срещаният е .append (). Той добавя елементи в края на списъка:

  • >>> my_L = [“Аз”, “любов”, “програма”, “включен”];
  • >>> my_L;
  • [“Аз”, “любов”, “програма”, “на”];
  • >>> my_L.append ("Python") # ще добави елемента, посочен в скоби;
  • >>> my_L;
  • [“Аз”, “любов”, “програма”, “включен”, “питон”].

Друг също толкова популярен метод се нарича sort (). Предназначен за сортиране на списъци в Python. Методът преподрежда елементи с помощта на стандартни оператори за сравнение. Може да се използва и за по-сложни задачи, като се използват аргументи:

  • >>> L = ["abc", "ABD", "aBe"];
  • >>> L.sort (key = str.lower, reverse = True) # Променя посоката на сортиране;
  • >>> L;
  • ["ABe", "ABD", "abc"].

Примерът използва синтаксиса "name = value", за да премине настройките. Аргументът ключ ви позволява да зададете собствени параметри за сравнение. В този случай това са елементи с малка буква. Обратното означава „обратното”, т.е. в низходящ ред, не нарастващо. създаване на списък с питони

Методи на клопки

При работа с тези методи трябва да се имат предвид следните характеристики: .sort () и .append () променят списъка, но не го връщате. Конструкцията my_list = List.sort () няма смисъл или резултат. Ето защо в най-новите версии на езика разработчиците въведоха функцията sorted (), която взема списък като аргумент:

  • >>> my_list = [1, 100, 56, 34, 2, 99];
  • >>> double_list = my_list.sort ();
  • >>> double_list # интерпретаторът не връща нищо;
  • >>> my_list;
  • [1, 2, 34, 56, 99, 100];
  • >>> double_list = сортирано (my_list);
  • >>> double_list;
  • [1, 2, 34, 56, 99, 100] # интерпретаторът връща сортирано копие на обекта.

Допълнителни методи

Python предоставя допълнителни методи за извършване на специализирана обработка на списъци. Например, обратното се използва за промяна на реда на елементите. За да вмъкнете няколко елемента в края или да изтриете, трябва да използвате методите за разширяване и поп. Има и обратна функция, която прилича на сортиране, но се използва чрез извикване на списъка:

  • >>> L;
  • [4, 3, 2, 1];
  • >>> списък (обратна (L)) # вградена функция за сортиране в обратен ред;
  • [1, 2, 3, 4].

Всички разглеждани операции най-често се прилагат към списъци и са основни. Но има високо специализирани методи. Например, .copy (), който създава плитко копие на обект, и .count (), който връща броя на елементите. За да видите целия списък с функции, налични в Python, които са приложими към обекта на списъка, трябва да въведете help () или dir () в интерпретатора.