Питхон програмирање. Листа у Питхону: основне операције

1. 3. 2020.

У Питхону, листе су уређене колекције. Они су важна компонента програмског кода. Листе се односе на уграђене језичке објекте. Уз њихову помоћ, можете брзо и ефикасно обрадити велику количину информација и структура података било које сложености. питхон лист

Својства и карактеристике објекта листе

Листе су флексибилне и променљиве. тип података. Могу бити произвољне дужине и неограничене количина информација. Као елементи секвенце дозвољено је коришћење низова, једноставних и реалних бројева, речника. Свака променљива листе у Питхон-у се може посебно третирати, избрисати или заменити.

Листе имају специфичан скуп својстава који их разликује од других типова података:

  • То су групе објеката са уређеним позиционирањем с лева на десно.
  • Листе омогућавају приступ оффсетом, односно бројем објекта.
  • У Питхону, листе су хетерогене. Редослед може укључивати објекте различитих врста, укључујући бројеве, мапе, низове, датотеке.
  • Листе су категоризоване као промењиви објекти са неограниченим бројем гнезда.

Листе се могу погрешно протумачити за повезане структуре података. Али у стварности то су контејнери референци на објекте, а не њихове копије. Они су као адресар. Сви елементи листе указују на локацију жељеног објекта. У овом, Питхон листе су сличне Ц низовима, али су имплементиране у интерпретеру. питхон стринг

Основне операције секвенце

Формално постоје три категорије података на језику. То су бројеви, мапе и секвенце којима припада тип листе. За сваку групу постоји заједнички скуп операција. На пример, збрајање, одузимање и множење за нумеричке објекте или приступ кључу за речнике.

Секвенце такође имају своје карактеристичне операције:

  • приступ елементу помоћу интегер индекса __гетитем __ ();
  • одређивање дужине __лен __ ();
  • уланчавање помоћу "+" оператора;
  • ектрацт слице [:].

Листе у акцији

Листе имају шири спектар могућности од стрингова у Питхону. То је моћан развојни алат са више специфичних функција које се примењују само за листу типова.

Како изгледају методе пописа у пракси:

  • >>> ми_лист = ["један", "2", "три"] # креира нову листу;
  • >>> ми_лист;
  • ["Један", "2", "три"];
  • >>> лен (ми_лист);
  • 3 # интерпретер враћа дужину;
  • >>> ми_лист + [1, 2, 3] # извршите конкатенацију;
  • ["Један", "2", "три", 1, 2, 3);
  • >>> ми_лист * 2 # понављање;
  • ["Један", "2", "три", "један", "2", "три"].

Када вршите конкатенацију на свакој страни знака "+", секвенце истог типа морају се наћи, иначе ће преводилац приказати поруку о грешци:

  • >>> [1, 2, 3] + 3.14 # ТипеЕррор: може само да спаја листу (не "флоат") на листу.

Да бисте додали низ и листу у Питхон-у, потребно је извршити прелиминарну конверзију за стр тип:

  • >>> сецонд_лист = лист ("стринг") # трансформирај објекат "стринг";
  • >>> сецонд_лист;
  • ["С", "т", "п", "о", "к", "а"] # интерпретер враћа листу;
  • >>> сецонд_лист + ми_лист;
  • ["С", "т", "п", "о", "к", "а", "један", "2", "три"].

Када креирате листу у Питхону, морате се придржавати строгих правила синтаксе. Сваки објекат мора бити затворен у углате заграде, а ставке су одвојене зарезима. питхон сортинг лист

Шта су генератори итерације и листе?

Понављање је процес понављања. У контексту листа, то је алтернативни напредак кроз елементе објекта који се понавља. На пример:

  • >>> 3 у [1, 2, 3] # провери да ли је наведена ставка укључена;
  • Труе;
  • >>> за к у [1, 2, 3, 4]: # извршите итерацију;
  • принт (к);
  • 1;
  • 2;
  • 3;
  • 4

Ако је итерација само обилазак сваког елемента, онда је генерација процес креирања новог објекта листе типова. У Питхону, генератори листи изгледају као петље, али раде брже и синтактички изгледају много једноставније:

  • >>> Лист_1 = [ц * 4 за ц у "СПАМ"] # ово је како генерација изгледа;
  • >>> Лист_1;
  • [“СССС”, “ПППП”, “АААА”, “ММММ”];
  • >>> Лист_2 = [];
  • >>> за ц у "СПАМ": # слична генерација наредба;
  • Лист_2.аппенд (ц * 4) # лист.аппенд () додаје нове елементе;
  • >>> Лист_2;
  • [“СССС”, “ПППП”, “АААА”, “ММММ”].

У оба примера, резултат је идентичан. Али коришћењем генератора, код је много краћи и лакши. Овај приступ је у потпуности у складу са Зен Зен од Питхона. То је Зен, или код језика, у којем се каже: "Једноставно је боље него компликовано" питхон лист генератор

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

Ове две операције су сличне по изгледу и омогућавају вам да рукујете појединачним ставкама листе у Питхону. Али постоји значајна разлика. Као резултат индексирања, враћа се посебан дио секвенце. А вађење пресека ствара нови објекат листе:

  • >>> Лист1 = ["спам", "Спам", "СПАМ!"]
  • >>> Лист1 [2] # офсет почиње од нуле
  • “СПАМ!”
  • >>> Лист1 [-2] # негативан оффсет: броји се са десне стране
  • Спам
  • >>> Листа [1:] # операција извлачења слице враћа секције објеката
  • ["Спам", "СПАМ!"]

Како функционише извлачење пресека и његове могућности

Језички конструкти омогућавају не само да се извлаче, већ и промене појединачни елементи, додељујући им нове вредности. Као резултат, враћа се иста листа, само са другом варијаблом. Ова операција је слична додели на индексу на језику Ц. Интерпретер замењује стару референцу на објекат наведен у офсету са новим:

  • >>> ми_лист = ["један", "осам", "сто");
  • >>> ми_лист [0: 2] = ["деведесет и осам", "деведесет девет"];
  • >>> ми_лист;
  • ["Деведесет осам", "деведесет девет", "сто"].

Ово је прилично компликована операција, која се одвија у неколико фаза. Прво, интерпретер брише све елементе лево од оператора. У овом примеру, ово је "један" и "осам". Затим се сви објекти десно од оператера убацују у листу, почевши од леве ивице.

Описани процес обезбеђује флексибилан рад са резовима. Број елемената које треба уклонити и додати може варирати. Операција је погодна за уклањање и замену објеката, као и за проширивање листа. Ово је прилично моћан начин за обраду кода. Међутим, програмери га ретко користе у пракси, преферирајући једноставније уметање, поп и уклањање инструкција. питхон феатуре лист

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

Већина метода или функција има за циљ директно мијењање објекта. Најчешћи је .аппенд (). Додаје ставке на крај листе:

  • >>> ми_Л = [“И”, “љубав”, “програм”, “он”];
  • >>> ми_Л;
  • ["И", "љубав", "програм", "он"];
  • >>> ми_Л.аппенд (“Питхон”) # ће додати елемент наведен у заградама;
  • >>> ми_Л;
  • ["И", "љубав", "програм", "он", "Питхон"].

Други једнако популаран метод се зове сорт (). Намењен је за сортирање листа у Питхону. Метода реордира елементе користећи операторе стандардног поређења. Такође се може користити за сложеније задатке користећи именоване аргументе:

  • >>> Л = ["абц", "АБД", "аБе"];
  • >>> Л.сорт (кеи = стр.ловер, реверсе = Труе) # Мења правац сортирања;
  • >>> Л;
  • ["АБе", "АБД", "абц"].

Примјер је користио синтаксу "наме = валуе" за просљеђивање поставки. Кључни аргумент вам омогућава да подесите сопствене параметре за поређење. У овом случају, ово су елементи са малим словом. Обрнуто значи "супротно", тј. У опадајућем редоследу, не повећавајући се. креирање питхон листе

Методе замки

Када радите са овим методама, треба размотрити следеће функције: .сорт () и .аппенд () променити листу, али је не враћате. Конструкција ми_лист = Лист.сорт () нема смисла или резултата. Зато су у најновијим верзијама језика програмери увели функцију сортед (), која узима листу као аргумент:

  • >>> ми_лист = [1, 100, 56, 34, 2, 99];
  • >>> доубле_лист = ми_лист.сорт ();
  • >>> доубле_лист # интерпретер не враћа ништа;
  • >>> ми_лист;
  • [1, 2, 34, 56, 99, 100];
  • >>> доубле_лист = сортирано (ми_лист);
  • >>> доубле_лист;
  • [1, 2, 34, 56, 99, 100] # интерпретер враћа сортирану копију објекта.

Додатне методе

Питхон нуди додатне методе за обављање специјализоване обраде листе. На пример, обрнуто се користи за промену редоследа елемената. Да бисте на крају уметнули више елемената или избрисали, потребне су вам методе за проширење и поп. Постоји и обрнута функција која подсећа на сортирање, али се користи преко позива на листи:

  • >>> Л;
  • [4, 3, 2, 1];
  • >>> листа (обрнуто (Л)) # уграђена функција сортирања обрнутим редоследом;
  • [1, 2, 3, 4].

Све разматране операције се најчешће примјењују на листе и основне су. Али постоје високо специјализоване методе. На пример, .цопи (), која ствара плитку копију објекта, и .цоунт (), који враћа број елемената. Да бисте видели целу листу функција доступних у Питхону које су применљиве на објекат листе, потребно је да унесете хелп () или дир () у преводиоцу.