common python list methods with syntax
Водич објашњава синтаксу и употребу уобичајених метода Питхон листе, као што су додавање на листу, сортирање листе, искакање, додавање, копирање, уклањање, обртање итд.:
Питхон листе се не користе само за чување података. Ако се правилно користе, постоје моћне структуре података. Међутим, не можемо их ефикасно користити ако не знамо њихове методе.
Иако Питхон има неке уграђене функције које могу да раде на листама, Питхон листе имају методе које се могу користити за рад на његовом објекту листе и на месту и ван њега.
=> Овде проверите СВЕ туторијале за Питхон
Шта ћете научити:
- Уобичајене методе пописа Питхон
- Закључак
Уобичајене методе пописа Питхон
Пре него што се позабавимо уобичајеним методама листе, важно је разумети неколико карактеристика Питхон листе.
- Питхон листа је колекција типова података од нула до бесконачних (колико вам рачунар може да дозволи) ( бројеви , Жице , боолеанс , тупле , листе , итд.) окружен угластим заградама са сваком ставком одвојеном зарезом (,).
- Питхон листа је наредио , променљив редослед и користи нумерација заснована на нули систем, тј. све његове ставке су јединствено идентификоване индексним бројем који почиње од 0 и завршава се на н-1, где је н дужина листе.
Имајући то на уму, можемо са сигурношћу да истражимо методе Питхон листе. Важно је знати да Питхон Лист има много њих методе и Питхон има много уграђених метода за рад на подацима са листе у разне сврхе.
Белешка :Крећући се напред, сви примери у овом упутству ће се директно покретати из Питхон љуске, ако није другачије назначено.
Метод за сабирање
Пре него што започнемо да изводимо операцију на листи, можда ћемо прво желети да јој додамо податке. Питхон листа има следеће уобичајене методе за додавање ставки на своју листу.
# 1) лист.аппенд (к)
Тхе додати () метода узима ставку као аргумент и додаје је на крају листе.
Као што се види горе, Питхон листе су поредане. Дакле, положај сваке ставке на листи је важан. Ако ставку додајемо на листу и желимо да то буде последња ставка на тој листи, тада је додатак () оно што нам треба.
Пример 1 :У доњем коду наша листа садржи име (Стринг) као прва ставка и старост (број) као друга ставка. Желимо да додамо трећу ставку плата (број) на листу такву коју имамо
list(name, age, salary)
Испод је пролазак кроз Питхон љуску.
>>> name = 'Enow Kevin' # define a name >>> age = 30 # define an age >>> details = (name, age) # create a list with name and age >>> details ('Enow Kevin', 30) >>> salary = 165000 # define a salary >>> details.append(salary) # add the salary to the end of the list >>> details ('Enow Kevin', 30, 165000) >>>
лист.аппенд (к ) је сличан до (лен ( до ):) = (к).
Размотрите пример у наставку:
Додајмо четврту ставку пол (Стринг) до горе наведене листе детаља.
>>> gender = 'Male' # define a gender >>> details(len(details):) = (gender) # add gender to the end of the list >>> details ('Enow Kevin', 30, 165000, 'Male') >>>
Белешка :У горњем примеру смо користили лен () која је уграђена у Питхон функцију која може радити на листи.
# 2) лист.ектенд (итерабле)
проширити (итерабле) узима у итерабле као аргумент и додајте сваку ставку из тог броја на листу.
Ова метода користи додати( ) под хаубом. Овај метод је сјајан ако имамо колекцију предмета за које желимо да додамо сваку ставку на другу листу.
Пример 2 :Рецимо да имамо две академске оцене ученика градеСциенце и градеАрт и одлучујемо да извршимо заједничку операцију оцена. Један од начина биће да им се прво придружимо.
Доље је дато упутство за Питхон љуску.
>>> gradeScience = (4,3,9,10) # grades in science >>> gradeArt = (9,11,7,5) # grades in art >>> gradeArt (9, 11, 7, 5) >>> gradeArt.extend(gradeScience) # join grades >>> gradeArt # we can now perform the operation on the joined grades (9, 11, 7, 5, 4, 3, 9, 10)
Иста ствар се може постићи са „ додати() у а петља ” . С обзиром да је проширити () метода узима итерабле и додаје сваку ставку у том итералу на листу, можемо користити а за петљу да демонстрирају како то функционише.
def extend_loop(extender, extended): '''for each item in the extender list, append the item into the extended list''' for item in extender: extended.append(item) if __name__ == '__main__': gradeScience = (4,3,9,10) # grades in science gradeArt = (9,11,7,5) # grades in art print('gradeArt: {} before extended'.format(gradeArt)) # join gradeScience and gradeArt into gradeArt extend_loop(gradeScience, gradeArt) print('gradeArt: {} after extended'.format(gradeArt))
Оутпут
Важно је знати разлику између додати (к ) и продужити (итерабле) .
Разлика између метода листе Питхон: додавање и понављање.
# | додати (к) | продужити (итерабле) |
---|---|---|
1 | Узима један аргумент и могао би бити поновљив | Узима један аргумент и требало би да буде поновљив |
два | Додаје ставку на листу | Додаје сваку ставку итера на листу. |
Пример 3 :Да бисмо јасно видели разлику између додавања и проширивања, размотримо овај пример. Примећујемо да и једно и друго листАпп и листЕкт узмите итерабле као аргумент, али оно што се мења је излаз.
>>> listApp = () # empty list >>> listExt = () # empty list >>> listApp.append((1,2,3)) # append an iterable >>> listExt.extend((1,2,3)) # extend an iterable >>> listApp # check output ((1, 2, 3)) >>> listExt # check output (1, 2, 3)
Питхон метода додати() узео итерабле, сматрао га ставком и додао на крај листе док је Питхон метода проширити() узео итерабил и додао сваку ставку тог итера на листу.
# 3) лист.инсерт (и, к)
Метода листе Питхон уметак () узима два аргумента (позиција, ставка) и убацује ставку на дату позицију на листи.
Метода уметак () је корисно када желимо да ставимо ставке на листу и имамо контролу над тим где тачно желимо да се ставке додају на листу. за разлику од додати() и проширити() који додају ставке на крају листе, уметак () омогућава нам додавање предмета у било којем положају који желимо.
Пример 4 :Рецимо да имамо списак имена по редоследу изврсности, а касније сазнајемо да смо неко име изоставили и да би требало да буде додато на списак пре одређеног имена. У овом случају и једно и друго додати() и проширити() неће помоћи јер желимо да ставку додамо на одређени положај.
Решење ће бити добијање индексне позиције имена пре које желимо да додамо своје ново име и користимо инсерт () да га додате на том положају.
>>> names = ('kevin','john','petter','tony','luke','andrew')# list of names >>> new_name = 'enow' # new name to be insert into the list of names >>> given_name = 'tony' # name before which to insert our new name >>> idx_given_name = names.index(given_name) # get index of given name >>> idx_given_name 3 >>> names.insert(idx_given_name, new_name) # insert new name >>> names ('kevin', 'john', 'petter', 'enow', 'tony', 'luke', 'andrew')
Белешка: У горњем примеру смо користили метод Питхон листе индекс () да бисте добили индексни положај ставке са листе ( о овоме више касније ).
Концепт уметак (индекс, к) је веома важно за разумевање. Први аргумент је индексна позиција елемента пред који треба уметнути.
Што значи да листа .инсерт (0, к) ће уметнути к испред ставке са индексом 0 и листа . уметак (само ( листа ), Икс ) ће уметнути к на крај листе (слично листи.аппенд (к)) пре позиције на индексу лен (листа) (овај индекс не постоји ни за једну листу)
Метод за одузимање
У Питхону, колико год можемо да додајемо ставке на листу, Питхон листе такође нам омогућавају уклањање или брисање ставки са листа.
# 1) лист.поп ((и))
Тхе поп () метода уклања и враћа ставку са листе. Ова метода може као аргумент узети необавезну вредност индекса (представљена квадратном заградом око и у потпису методе која означава „опционално“, а не списак), што означава положај индекса одакле ће се уклонити ставка.
Ако није дато ниједно, подразумевано је -1, тј. Последња ставка листе ће бити уклоњена и враћена.
Пример 5 :С обзиром на списак аутомобила испод, можемо одлучити да уклонимо ставке са ове листе на било којој позицији индекса захваљујући којој желимо поп ()
>>> cars = ('Toyota','Audi','BMW','Bugatti','Bently','Aston Martin') #cars >>> cars ('Toyota', 'Audi', 'BMW', 'Bugatti', 'Bently', 'Aston Martin') >>> toyota = cars.pop(0) # remove and return car at index 0 >>> cars ('Audi', 'BMW', 'Bugatti', 'Bently', 'Aston Martin') >>> toyota 'Toyota' >>> bugatti = cars.pop(2) # remove and return car at index 2 >>> cars ('Audi', 'BMW', 'Bently', 'Aston Martin') >>> bugatti 'Bugatti' >>> aston_martin = cars.pop() # remove and return the last car in the list(at index -1) >>> cars ('Audi', 'BMW', 'Bently') >>> aston_martin 'Aston Martin'
# 2) лист.ремове (к)
Метода листе Питхон уклони (к) уклања прву појаву ставке која је једнака к.
Метода уклони () је корисно када желимо да уклонимо ставку са листе, али нас није брига за ставку и не знамо где се тачно налази на листи.
Пример 6 :Имамо списак књига и желимо да уклонимо одређену књигу по имену са листе јер нам више није потребна.
>>> books = ('python for beginners','python in a nutshell','python in action') # list of books >>> books ('python for beginners', 'python in a nutshell', 'python in action') >>> book_to_remove = 'python in a nutshell' # book to be removed >>> books.remove(book_to_remove) # remove book >>> books ('python for beginners', 'python in action')
Белешка: Ако је предмет дат уклони () као аргумент, али не постоји на листи, а ВалуеЕррор се подиже. Дакле, ову методу увек треба позивати унутар а покушај-осим да се носи са изузетком.
Можемо видети неколико разлика између метода поп () и уклони () како је приказано испод:
# | поп () | уклони () |
---|---|---|
1 | Прихвата опционални аргумент и треба да буде позиција индекса ставке која се уклања. Ако је индекс ван опсега, подиже се ИндекЕррор | Прихвата аргумент и требало би да буде ставка коју треба уклонити. Ако ставка није на листи, појављује се ВалуеЕррор |
два | Уклања ставку са листе и враћа је. | Уклања ставку са листе, али је не враћа. |
# 3) лист.цлеар ()
Метод листе Питхон-а јасно () уклања све ставке са листе, чинећи је тако празном. Није потребан аргумент.
Овај метод је користан за поновно додељивање објекта листе новим вредностима.
Пример 7 :Имамо листу која садржи колекцију имена, али желимо да имена заменимо новим именима. У овом случају, прво бришемо претходна имена чинећи објект листе празним, а затим додајемо нова имена једним од различитих метода Питхон листе за додатак који смо видели горе.
>>> names = ('enow','kevin','eyong') # our collection of names >>> names.clear() # clear the list object >>> names () >>> names.extend(('ayamba','derrick','fred')) # add new names with the extend() method >>> names ('ayamba', 'derrick', 'fred')
Белешка :Исто можемо постићи и са од листа(:).
Многи могу тврдити да то уместо да користе јасно (), зашто једноставно не бисмо поново доделили листу празном листом попут ове
>>> a = (4,5,3) # list object containing numbers >>> a= () # re-assign to an empty list >>> a ()
Па, ево проблема са овим. Ако имате две променљиве ( до и б ) који упућују на објекат листе ((4,5,3)), позивајући цлеар () на било коју од променљивих (рецимо до ) ће уклонити ставке из тог референцираног објекта листе.
Међутим, ако поново доделите било коју променљиву (рецимо до ) са празном листом, затим оном која је поново додељена ( до ) више се неће позивати на исти објекат листе као б .
>>> a = (4,5,3) # define a list object with numbers >>> b = a # assign 'a' to a new variable 'b' >>> b (4, 5, 3) >>> a = () # re-assign 'a' to an empty list. This changes its referenced object >>> a () >>> b # 'b' doesn't change because it doesn't reference the same list object as 'a' (4, 5, 3)
Методе за анализу
Већину времена желимо да знамо и разумемо ставке у нашем објекту листе. Питхон листа има неколико метода које можемо користити за разумевање њених ставки.
# 1) лист.индек (к (, почетак (, крај)))
Метода листе Питхон индекс (к) враћа индекс заснован на нули на листи прве ставке чија је вредност једнака к. Потребни су један обавезни и два необавезна аргумента. Први аргумент (к) представља ставку за коју желимо да пронађемо њен индекс.
тим основа сервера агилно управљање пројектима
Последња два аргумента (почетак, крај ) одредити почетни и крајњи (ексклузивни) индекс из којег ће се тражити. За разлику од других програмских језика попут ЈаваСцрипт-а где је његов еквивалентни метод индекс () враћа -1 када не постоји таква ставка, метода листе Питхон индекс () уместо тога покреће ВалуеЕррор.
Пример 8 :Референца Пример 4 где смо користили индекс () да бисте добили индексни положај имена на листи имена. У овом примеру 8 видећемо како да користимо необавезне аргументе како бисмо ограничили претрагу на одређену подсеквенцу листе.
>>> fruits = ('Apples','Avocados','Eggfruit','Apples','Cantaloupe','Cucumbers') # list of fruits >>> fruits.index('Apples',1,3) # find index of 'Apples' from index 1 to index 3(exclusive) Traceback (most recent call last): File '', line 1, in ValueError: 'Apples' is not in list >>> fruits.index('Apples',1,4) # find index of 'Apples' from index 1 to index 4(exclusive) 3 >>> fruits.index('Cucumbers',3) # find index of 'Cucumbers' from index 3 to end of list. 5
# 2) лист.цоунт (к)
Метода листе Питхон рачунати (к) се користи за одређивање колико пута се дата ставка к појављује на листи.
за разлику од сетови () , Питхон листе могу садржати дупликате ставки, ако нас занима да знамо о тим дупликатима и утврдимо колико пута је ставка дуплирана, онда рачунати () је пут којим треба ићи.
Пример 9 : Рецимо да имамо објект на листи који садржи имена сенатора на основу њихових гласова. Што се више гласа за сенат, то се више његово име појављује у објекту листе. Сада желимо да сазнамо колико гласова има одређени сенат.
>>> senate_votes = ('Tammy','John','Tammy','Tammy','Thomas','Maria','Maria') # list of senate names based on their votes >>> senate_votes ('Tammy', 'John', 'Tammy', 'Tammy', 'Thomas', 'Maria', 'Maria') >>> tammy_votes = senate_votes.count('Tammy') # get tammy's vote count >>> tammy_votes 3 >>> thomas_votes = senate_votes.count('Thomas') # get thomas's vote count >>> thomas_votes 1 >>> mike_votes = senate_votes.count('Mike') # get mike's vote count >>> mike_votes 0
Белешка :Метода листе Питхон рачунати () враћа нулу (0) ако се ставка не појави на листи.
# 3) лист.сорт (кеи = Ноне, реверсе = Фалсе)
Метода листе Питхон врста () сортира податке листе на месту. Потребна су два аргумента кључне речи.
- кључ ( подразумевано нема ) : Одређује функцију једног аргумента који се користи за издвајање предмета са листе и припрема их за упоређивање. На пример, ако имамо листу позитивних бројева, али желимо да наша функција сортирања сортира њихове негативне вредности, можемо да користимо овај кључ да бисмо то постигли.
- обрнуто ( подразумевано је Фалсе ) : То је логичка вредност и ако се постави на Тачно, сортираће се у опадајућем редоследу. Његова вредност је подразумевано Фалсе, па се сортира у растућем редоследу.
Пример 10 :Имамо листу бројева и желимо да знамо највећи број на тој листи.
>>> numbers = (4,34,6,1,0, 9,33,82,2) # list of numbers >>> numbers (4, 34, 6, 1, 0, 9, 33, 82, 2) >>> sort_numb = numbers.copy() # make a copy to work with >>> sort_numb.sort(reverse=True) # sort in descending order >>> sort_numb (82, 34, 33, 9, 6, 4, 2, 1, 0) >>> sort_numb(0) # get the first item which is the largest number 82
Белешка: Користили смо метод Питхон листе копија () да направимо плитку копију наше листе ( О томе више касније).
Пример 11: Да бисмо демонстрирали употребу кључа, сортирајмо негативну вредност ставки на листи.
>>> numbers # list of num (4, 34, 6, 1, 0, 9, 33, 82, 2) >>> sort_neg_numb = numbers.copy() # make a copy to work with >>> sort_neg_numb (4, 34, 6, 1, 0, 9, 33, 82, 2) >>> sort_neg_numb.sort(key=lambda x: -x, reverse=True) # sort in descending order the negative value of each item. >>> sort_neg_numb (0, 1, 2, 4, 6, 9, 33, 34, 82) >>>
Из горњег излаза видимо да иако смо сортирали у опадајућем редоследу, излаз је у растућем редоследу. То је зато што је наша ламбда функција у основи направила такво да је извршено поређење негативних вредности сваке ставке на листи.
Белешка :Будући да кључ наводи функцију једног аргумента, користили смо а ламбда израз за дефинисање анонимне функције. Све што ради је да врати негативну вредност сваке ставке на листи.
Остале методе
У овом одељку ћемо погледати неке методе листе Питхон-а које можда неће спадати ни у једну од горе описаних категорија.
# 1) лист.цопи ()
Питхон метода копија () враћа а плитко копија списка. Плитко значи да прави копију само првог нивоа листе ( о овоме више касније ).
Овај метод је користан за задржавање оригиналних вредности листе пре него што измените листу. Као што смо видели у Пример 7 горе, једноставно додељивање променљиве која референцује објекат листе на другу променљиву не ствара нови објекат. Пре ће се две променљиве односити на исти објекат.
Отуда ће промена једне довести до промене друге.
Пример 12 :Референтни примери 10 и Једанаест да би се видело како је коришћена ова метода.
Белешка :Занимљиво је знати да се то исто може постићи и са резање ( до (:))
Пример 13 :Да бисмо боље разумели значење плитко у опису копија (), размотрите пример у наставку.
>>> list1 = (1,2,3) # object list 1 >>> list2 = (0,list1) # object list 2 containing reference to list 1 >>> list2 (0, (1, 2, 3)) >>> list2_copy = list2.copy() # make a shallow copy of list 2 >>> list2_copy (0, (1, 2, 3)) >>> list2(0) = -1 # modify list 2's first level item >>> list2 (-1, (1, 2, 3)) >>> list2_copy # list 2's copy doesn't change (0, (1, 2, 3)) >>> list1(0) = 'a' # modify list 1 >>> list1 ('a', 2, 3) >>> list2 # list 2 changes since it has reference to list 1 (-1, ('a', 2, 3)) >>> list2_copy # list 2's copy changes because the nested list ‘list 1’ wasn't copied. (0, ('a', 2, 3)) >>>
Горњи пример показује да плитко копирање значи да било који угнежђени итерабил на листи неће бити копиран.
# 2) лист.реверсе ()
Метода листе Питхон обрнуто () преокреће ставке листе на месту. Није потребан никакав аргумент.
Ова метода је корисна када желимо да сортирање променимо у растуће или силазно након сортирања.
Пример 14 :Своју листу смо сортирали у растућем редоследу, а касније желимо да добијемо силазни редослед сортиране листе. Такође бисмо могли да користимо метод Питхон листе врста () и поставите обрнуто на Тачно, или бисмо могли да користимо обрнуто () метода листе као што је приказано доле.
>>> numbs = (3,4,1,8,0,44,5) # our list of disordered numbers >>> numbs (3, 4, 1, 8, 0, 44, 5) >>> numbs.sort() # sort, in ascending by default >>> numbs (0, 1, 3, 4, 5, 8, 44) >>> numbs.reverse() # reverse to arrange in descending order >>> numbs (44, 8, 5, 4, 3, 1, 0) >>>
ФАК
П # 1) Како да уклоним нешто са листе у Питхону?
Одговор: Ставке са листе можемо уклонити на неколико начина помоћу метода листе Питхон и уграђене функције Питхон дел.
- Уклоните помоћу лист.ремове (к) : Ово ће уклонити ставку к са листе.
>>> a = (4, 3, 6, 1) # our list of numbers >>> a (4, 3, 6, 1) >>> a.remove(3) # remove item '3' from the list >>> a (4, 6, 1) >>>
- Уклоните помоћу лист.поп ((и)) : Користи се за брисање и враћање ставке на било којем месту на листи. Ако позиција индекса није дата, она брише ставку на крају листе.
>>> a = (4, 3, 6, 1) # our list of numbers >>> a.pop() # remove the last item in the list 1 >>> a (4, 3, 6) >>> a.pop(1) # remove the item at index position 1 3 >>> a (4, 6) >>>
- Уклоните помоћу лист.цлеар () : Овим ћете уклонити све ставке са листе.
>>> a = (4, 3, 6, 1) # list of numbers >>> a (4, 3, 6, 1) >>> a.clear() # delete all items >>> a ()
- Уклоните помоћу од : Уграђена Питхон функција дел може се користити за брисање ставки са листе.
>>> a = (4, 3, 6, 1) # list of numbers >>> a (4, 3, 6, 1) >>> del a(0) # delete item at index 0 >>> a (3, 6, 1) >>> del a(1) # delete item at index 1 >>> a (3, 1) >>> del a(:) # delete all items. Same as clear() >>> a () >>>
П # 2) Како сортирати листу у Питхону?
Одговор: Да бисмо сортирали листе у Питхону, можемо користити методу Питхон листе врста (). Ова метода сортира листу на месту и узима два аргумента кључне речи кеи и обрнуто .
Тхе обрнуто Кључна реч се може подесити за сортирање у узлазном или силазном редоследу Алтернативно, можемо да користимо уграђену функцију Питхона сортирано (). Међутим, ово се не слаже на месту.
П # 3) Можете ли додати више ставки на листу у Питхону?
Одговор: Можемо додати више ставки на листу помоћу методе Питхон листе аппенд () у а петља , где пролазимо кроз итерабил и додајемо сваку ставку на листу.
def append_loop(): list1 = (0,1,2,3) # list 1 list2 = (4,5,6,7) # list 2 # iterate through ‘list 2’ using ‘for loop’, and append each item to list1 for item in list2: list1.append(item) print('Concatenated list is {}'.format(list1)) if __name__ == '__main__': append_loop()
Оутпут
Такође можемо додати више ставки користећи методу Питхон листе проширити (). Ради као „ додати () у а за петљу ”Као што смо видели горе.
>>> list1 = (0,1,2,3) # list 1 >>> list2 = (4,5,6,7) # list 2 >>> list1.extend(list2) # append each item in list2 into list1 >>> list1 (0, 1, 2, 3, 4, 5, 6, 7) >>>
Алтернативно, могли бисмо да се спојимо помоћу + оператора. Међутим, ово не функционише на месту . То значи да ће вратити повезану листу док оригиналне листе остају непромењене.
>>> list1 = (0,1,2,3) # list 1 >>> list2 = (4,5,6,7) # list 2 >>> list3 = list1 + list2 # concatenate using the + operator >>> list3 (0, 1, 2, 3, 4, 5, 6, 7) >>>
Закључак
У овом упутству смо прошли кроз неке уобичајене методе листе Питхон-а попут додавање, проширивање, уметање, искакање, уклањање, брисање, индексирање, бројање, копирање, и обрнуто .
Такође смо видели неколико примера како применити ове методе у разним ситуацијама.
=> Посетите овде да бисте видели серију обука за Питхон за све
Препоручено читање
- Питхон ДатеТиме Водич са примерима
- Функције пописа Питхон - Водич са примерима
- Питхон Водич за почетнике (Практични БЕСПЛАТНИ Питхон тренинг)
- Водич за напредне листе за Питхон (сортирање, преокретање, индексирање, копирање, придруживање, збир)
- Методе Јава листе - Листа сортирања, Садржи, Додавање листе, Уклањање листе
- Питхон променљиве
- Питхон листа - Креирајте, приступите, исеците, додајте или избришите елементе