Колекције у Питхону: Све што требате знати о Питхон колекцијама



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

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

Шта су колекције у Питхону?

Колекције у питхону су у основи типови података контејнера, наиме листе, скупови, корице, речник. Имају различите карактеристике на основу декларације и употребе.





  • Листа је декларисана у угластим заградама, променљива је, чува дупле вредности и елементима се може приступити помоћу индекса.

  • Тупле је уређене и непроменљиве природе, мада дуплицирани уноси могу бити унутар корпе.



  • Скуп је неуређен и декларисан у угластим заградама. Није индексиран и нема дупликате уноса.

  • Речник има парове кључних вредности и по својој природи је променљив. Користимо углате заграде за декларацију речника.

То су питхон-ови типови података уграђених контејнера за општу намену. Али као што сви знамо, питхон увек има нешто додатно да понуди. Долази са питхон модулом под називом цоллецтион који има специјализоване структуре података.



низ објеката у јави

Структуре података специјализованог прикупљања података

Збирке модул у питхон-у примењује специјализоване структуре података које пружају алтернативу уграђеним врстама података контејнера у питхон-у. Следе специјализоване структуре података у модулу збирки.

  1. намедтупле ()
  2. и
  3. Цхаинмап
  4. Цоунтер
  5. ОрдередДицт
  6. дефаултдицт
  7. УсерДицт
  8. УсерЛист
  9. УсерСтринг

намедтупле ()

Враћа корпицу са именованим уносом, што значи да ће свакој вредности у корпици бити додељено име. Превазилази проблем приступа елементима помоћу вредности индекса. Са намедтупле () постаје лакше приступити овим вредностима, јер не морате памтити вредности индекса да бисте добили одређене елементе.

Како то ради?

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

из колекција увози намедтупле

Погледајте следећи код да бисте разумели како можете да користите намедтупле.

а = намедтупле ('цоурсес', 'наме, тецх') с = а ('сциенце сциенце', 'питхон') принт (с) # излаз ће бити курсеви (наме = 'питхон', тецх = 'питхон')

Како створити именовани пар помоћу листе?

с._маке (['дата сциенце', 'питхон']) # излаз ће бити исти као и пре.

и

декуе који се изговара као 'децк' је оптимизована листа за лако извршавање уметања и брисања.

Како то ради?

#цреатинг декуе из колекција импорт декуе а = ['д', 'у', 'р', 'е', 'к'] а1 = декуе (а) принт (а1) # излаз ће бити декуе ([' д ',' у ',' р ',' е ',' к '])

Сада ћемо погледати како ћемо уметнути и уклонити предмете из декуе-а.

а1.аппенд ('а') принт (а1) # излаз ће бити декуе (['д', 'у', 'р', 'е', 'к', 'а']) а1.аппендлефт (' е ') принт (а1) # излаз ће бити декуе ([' е ',' д ',' у ',' р ',' е ',' к ',' а '])

Као што би требало бити очигледно, уметање компоненте је побољшано коришћењем декуе-а, а такође можете уклонити и компоненте.

а1.поп () принт (а1) # излаз ће бити декуе (['е', 'д', 'у', 'р', 'е', 'к']) а1.поплефт () принт (а1 ) # излаз ће бити декуе (['д', 'у', 'р', 'е', 'к'])

Слично уграђеним типовима података, постоји још неколико операција које можемо извршити на декуе-у. Као бројање елемената или брисање декуе-а итд.

ЦхаинМап

То је речник попут класе који може да направи један приказ више мапирања. У основи враћа листу неколико других речника. Претпоставимо да имате два речника са неколико парова кључних вредности, у овом случају ЦхаинМап ће направити јединствену листу са оба речника у себи.

Како то ради?

из колекција увози ЦхаинМап а = {1: 'едурека', 2: 'питхон'} б = {3: 'дата сциенце', 4: 'Мацхине леарнинг'} ц = ЦхаинМап (а, б) принт (ц) #тхе излаз ће бити ЦхаинМап [{1: 'едурека', 2: 'питхон'}, {3: 'дата сциенце', 4: 'Мацхине леарнинг'}]

За приступ или уметање елемената користимо кључеве као индекс. Али за додавање новог речника у ЦхаинМап користимо следећи приступ.

а1 = {5: 'АИ', 6: 'неуронске мреже'} ц1 = ц.нев_цхилд (а1) принт (ц1) # излаз ће бити ЦхаинМап [{1: 'едурека', 2: 'питхон'}, { 3: 'наука о подацима', 4: 'Машинско учење'}, {5: 'АИ', 6: 'неуронске мреже'}]

Цоунтер

То је подразред речника који се користи за бројање хешабилних објеката.

Како то ради?

из колекција импорт Цоунтер а = [1,1,1,1,2,3,3,4,3,3,4] ц = Цоунтер (а) принт (ц) # излаз ће бити Цоунтер = ({1: 4, 2: 1, 3: 4, 4: 2})

Поред операција које можете изводити на речнику Бројач има још 3 операције које можемо извршити.

  1. функција елемента - Враћа листу која садржи све елементе у бројачу.
  2. Мост_цоммон () - Враћа сортирану листу са бројем сваког елемента у бројачу.
  3. Одузми () - Узима итерабилни објекат као аргумент и одузима број елемената у бројачу.

ОрдередДицт

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

Како то ради?

из колекција увози ОрдередДицт од = ОрдередДицт () од [1] = 'е' од [2] = 'д' од [3] = 'у' од [4] = 'р' од [5] = 'е' од [6] = 'к' из [7] = 'а' принт (фром) #излаз ће бити ОрдередДицт [(1, 'е'), (2, 'д'), (3, 'у'), (4, 'р'), (5, 'е'), (6, 'к'), (7, 'а')]

Није важно која вредност се убацује у речник, ОрдередДицт памти редослед којим је уметнута и у складу с тим добија излаз. Чак и ако променимо вредност кључа. Рецимо, ако променимо вредност кључа 4 на 8, редослед се неће променити у излазу.

дефаултдицт

То је подразред речника који позива фабричку функцију да пружи вредности које недостају. Генерално, не баца грешке када се у речнику позове вредност кључа која недостаје.

Како то ради?

креирајте ец2 инстанцу из снимка
из колекција импорт дефаултдицт д = дефаултдицт (инт) # морамо навести и тип. д [1] = 'едурека' д [2] = 'питхон' принт (д [3]) # то ће дати излаз као 0 уместо грешке кључа.

УсерДицт

Ова класа делује као омотач око објеката речника. Потреба за овом класом произашла је из потребе за подразредом директно из диктата. Са овом наставом постаје лакше радити јер основни речник постаје атрибут.

колекције класа.УсерДицт ([почетни подаци])

Ова класа симулира речник. Садржај инстанце чува се у редовном речнику којем се може приступити помоћу атрибута ‘дата’ класе УсерДицт. Референца почетних података се не чува, већ би се могла користити у друге сврхе.

УсерЛист

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

Потреба за овом класом произашла је из потребе за поткласирањем директно са списка. Постаје лакше радити са овом класом јер основна листа постаје атрибут.

колекције класа.УсерЛист ([листа])

Класа је та која симулира листу. Садржај инстанце чува се на уобичајеној листи. Под-класе листе ослањају се на нуђење конструктора који се може позвати без икаквог или са једним препиром.

На овом блогу смо сазнали о специјализованим структурама података које се испоручују са модулом збирки у питхону. Оптимизација доводи до бољих перформанси и побољшаних резултата. Исто се односи и на нашу каријеру и вештине. Ако желите да започнете своје учење и оптимизујете начин на који доживљавате програмирање, пријавите се на едурека и ослободите бескрајне могућности с питхон-ом.

Имате ли питања? спомените их у коментарима и јавићемо вам се што је пре могуће.