common python list methods with syntax
Урокът обяснява синтаксиса и използването на обичайните методи на списъка на Python като добавяне към списък, сортиране на списък, изскачане, добавяне, копиране, премахване, обръщане и т.н.:
Списъците на Python не се използват само за съхраняване на данни. Има мощни структури от данни, ако се използват правилно. Не можем обаче да ги използваме ефективно, ако не знаем за техните методи.
Въпреки че Python има някои вградени функции, които могат да работят със списъци, списъците на Python имат методи, които могат да се използват за работа с неговия обект на списък както на място, така и извън него.
=> Проверете ВСИЧКИ уроци за Python тук
Какво ще научите:
- Общи методи на списъка на Python
- Заключение
Общи методи на списъка на Python
Преди да се задълбочим в общите методи за списъци, е важно да разберем няколко характеристики на списък на Python.
- Списъкът на Python е колекция от нулеви до безкрайни (колкото компютърът ви позволява) типове данни ( числа , Струни , булеви , кортежи , списъци , и т.н.), заобиколени от квадратни скоби, като всеки елемент е разделен със запетая (,).
- Списъкът на Python е наредени , променлив последователност и използва нулево базирано номериране всички нейни елементи са уникално идентифицирани с номер на индекс, който започва от 0 и завършва на n-1, където n е дължината на списъка.
Имайки това предвид, можем уверено да се задълбочим в разглеждането на методите на списъка на Python. Важно е да знаете, че Python List има много методи и Python има много вградени методи за работа с данните от списъка за различни цели.
Забележка :Продължавайки напред, всички примери в този урок ще се изпълняват директно от обвивката на Python, освен ако не е посочено друго.
Метод за добавяне
Преди да започнем да извършваме операция в списък, може първо да поискаме да добавим данни към него. Списъкът на Python има следните често срещани методи за добавяне на елементи в неговия списък.
# 1) list.append (x)
The добави () метод приема елемент като аргумент и го добавя в края на списъка.
Както се вижда по-горе, списъците на Python са подредени. Така че, позицията на всеки елемент в списъка е важна. Ако добавяме елемент към списък и искаме той да е последният елемент в този списък, тогава append () е това, от което се нуждаем.
Пример 1 :В кода по-долу, нашият списък съдържа a име (String) като първи елемент и възраст (число) като втори елемент. Искаме да добавим трети елемент заплата (номер) към списъка, който имаме
list(name, age, salary)
По-долу е разглеждане на обвивка на Python.
>>> 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) >>>
list.append (x ) е подобен на да се (len ( да се ):) = (x).
Помислете за примера по-долу:
Нека добавим четвърти елемент пол (String) към нашия списък с детайли, дефиниран по-горе.
>>> gender = 'Male' # define a gender >>> details(len(details):) = (gender) # add gender to the end of the list >>> details ('Enow Kevin', 30, 165000, 'Male') >>>
Забележка :В горния пример използвахме пост (), която е вградена в Python функция, която може да работи в списък.
# 2) list.extend (итерируем)
разшири (iterable) приема в итеративен като аргумент и добавете всеки елемент от тази итерация към списъка.
Този метод използва добави ( ) под капака. Този метод е чудесен, ако имаме колекция от елементи, които искаме да добавим всеки елемент в друг списък.
Пример 2 :Да приемем, че имаме две академични оценки на учениците gradeScience и gradeArt и решаваме да извършим обща операция върху оценките. Един от начините ще бъде да се присъедините към тях първо.
По-долу е дадено ръководство за обвивка на Python.
>>> 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))
Изход
Важно е да знаете разликата между добави (x ) и разширяване (итерация) .
Разлика между методите на списъка на Python: добавяне и итериране.
# | добавяне (x) | разширяване (итерация) |
---|---|---|
1 | Взема един аргумент и може да бъде итеративен | Взема в един аргумент и трябва да бъде итерируем |
две | Добавя елемент в списък | Добавя всеки елемент от итерируемия в списък. |
Пример 3 :За да видим ясно разликата между добавяне и разширяване, нека разгледаме този пример. Забелязваме, че и двете listApp и listExt вземете итерация като аргумент, но това, което се променя, е резултатът.
>>> 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)
Метод на Python добавяне () взе итерируемия, разгледа го като елемент и го добави в края на списъка, докато методът на Python разшири() взе итерируемия и добави всеки елемент от него в списъка.
# 3) list.insert (i, x)
Методът на списъка на Python вмъкване () взема два аргумента (позиция, елемент) и вмъква елемента на дадената позиция в списъка.
Методът вмъкване () е полезно, когато искаме да добавим елементи в списък и да имаме контрол върху това къде точно искаме елементите да бъдат добавени към списъка. За разлика от добавяне () и разшири() които добавят елементи в края на списък, вмъкване () ни позволява да добавяме елементи в каквато позиция искаме.
Пример 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')
Забележка: В горния пример използвахме метода на списъка на Python индекс (), за да получите позицията на индекса на елемент от списък ( повече за това по-късно ).
Концепцията за вмъкване (индекс, x) е много важно да се разбере. Първият аргумент е индексна позиция на елемента, пред който да се вмъкне.
Което означава, че списък .insert (0, x) ще вмъкне x пред елемента с индекс 0 и списък . вмъкване (само ( списък ), х ) ще вмъкне x в края на списъка (подобно на list.append (x)) преди позицията в индекса пост (списък) (този индекс не съществува за нито един списък)
Метод за изваждане
В Python, доколкото можем да добавяме елементи в списък, списъците на Python също ни позволяват да премахваме или изтриваме елементи от списъци.
# 1) list.pop ((i))
The поп () метод премахва и връща елемент от списък. Този метод може да приеме като аргумент незадължителна стойност на индекса (представена от квадратната скоба около i в подписа на метода, който означава „незадължителен“, а не списък), която обозначава позицията на индекса, откъдето да се премахне елемент.
Ако не е дадено нито едно, то по подразбиране е -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) list.remove (x)
Методът на списъка на Python премахване (x) премахва първата поява на елемент, който е равен на x.
Методът Премахване() е полезно, когато искаме да премахнем елемент от списък, но не ни интересува елемента и не знаем къде точно е позициониран в списъка.
Пример 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')
Забележка: Ако даден елемент е даден на Премахване() като аргумент, но не съществува в списъка, а ValueError се повдига. Така че, този метод винаги трябва да се извиква в опитайте-освен за справяне с изключението.
Можем да видим някои малко разлики между методите поп () и Премахване() както е показано по-долу:
# | поп () | Премахване() |
---|---|---|
1 | Приема незадължителен аргумент и трябва да бъде позиция на индекса на елемента, който трябва да бъде премахнат. Ако индексът е извън обхвата, се вдига IndexError | Приема аргумент и трябва да бъде елементът, който трябва да бъде премахнат. Ако елементът не е в списъка, се извежда ValueError |
две | Премахва елемента от списъка и го връща. | Премахва елемента от списъка, но не го връща. |
# 3) list.clear ()
Метод на списъка на Python ясно () премахва всички елементи от списъка, като по този начин го прави празен. Не са необходими аргументи.
Този метод е полезен за повторно присвояване на списъчния обект с нови стойности.
Пример 7 :Имаме списък, който съдържа колекция от имена, но искаме да заменим имената с нови имена. В този случай първо изчистваме предишните имена, като правим обекта на списъка празен, след което добавяме новите си имена с един от различните методи на списъка на Python за добавяне, което видяхме по-горе.
>>> 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)), извиквайки clear () за някоя от променливите (да речем да се ) ще премахне елементи от посочения обект на списък.
Ако обаче преназначите някоя от променливите (да речем да се ) с празен списък, след това този, който е преназначен ( да се ) вече няма да препраща към същия обект от списъка като б .
>>> 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)
Методи за анализ
По-голямата част от времето искаме да знаем и разбираме елементите в нашия списъчен обект. Списъкът на Python има няколко метода, които можем да използваме, за да разберем неговите елементи.
# 1) list.index (x (, начало (, край)))
Методът на списъка на Python индекс (x) връща нулев индекс в списъка на първия елемент, чиято стойност е равна на x. Необходими са един задължителен и два незадължителни аргумента. Първият аргумент (x) представлява елемента, който искаме да намерим неговия индекс.
как да добавя низ към масив от низове
Последните два аргумента (начало, край ) определят начален и краен (изключителен) индекс, от който да търсят. За разлика от други езици за програмиране като JavaScript, където е еквивалентен метод индекс на () връща -1, когато няма такъв елемент, методът на списъка на Python индекс () вместо това повдига ValueError.
Пример 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) list.count (x)
Методът на списъка на Python броя (x) се използва за определяне колко пъти даден елемент x се появява в списък.
За разлика от набори () , Списъците на Python могат да съдържат дублирани елементи, ако ни интересува да знаем за тези дубликати и да определим колко пъти даден елемент се дублира, тогава броя () е пътят.
Пример 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
Забележка :Методът на списъка на Python броя () връща нула (0), ако елементът не се показва в списъка.
# 3) list.sort (ключ = None, reverse = False)
Методът на списъка на Python вид () сортира данните от списъка на място. Включва два аргумента за ключови думи.
- ключ ( по подразбиране няма ) : Указва функция на един аргумент, използван за извличане на елементи от списъка, и ги подготвя за сравнение. Например, ако имаме списък с положителни числа, но искаме функцията ни за сортиране да сортира отрицателните им стойности, можем да използваме този ключ, за да постигнем това.
- обратен( по подразбиране е False ) : Това е булева стойност и ако е зададена на True, тя ще се сортира в низходящ ред. Стойността му по подразбиране е False, поради което се сортира във възходящ ред.
Пример 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
Забележка: Използвахме метода на списъка на Python копие (), за да направите плитко копие на нашия списък ( Повече за това по-късно).
Пример 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) >>>
От изхода по-горе виждаме, че макар да сме сортирали в низходящ ред, изходът е във възходящ ред. Това е така, защото нашата ламбда функция основно го направи такава, че сравнението беше направено по отрицателните стойности на всеки елемент от списъка.
Забележка :Тъй като ключът определя функция на един аргумент, използвахме a ламбда израз за дефиниране на анонимна функция. Всичко, което прави, е, че връща отрицателната стойност на всеки елемент от списъка.
Други методи
В този раздел ще разгледаме някои методи от списъка на Python, които може да не попаднат в никоя от категориите, описани по-горе.
# 1) list.copy ()
Методът на Python копие () връща a плитка копие от списъка. Shallow означава, че прави копие само на първото ниво на списък ( повече за това по-късно ).
Този метод е полезен за запазване на първоначалните стойности на списъка преди модифициране на списъка. Както видяхме в Пример 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) list.reverse ()
Методът на списъка на Python обратен () обръща елементите от списъка на място. Не е необходим никакъв аргумент.
Този метод е полезен, когато искаме да променим подреждането на възходящо или низходящо след сортиране.
Пример 14 :Ние сме сортирали нашия списък във възходящ ред, а по-късно искаме да получим низходящ ред на сортирания списък. Можем да използваме и метода на списъка на Python вид () и задайте обратен на True, или бихме могли да използваме обратен () метод на списъка, както е показано по-долу.
>>> 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) Как да премахна нещо от списък в Python?
Отговор: Можем да премахнем елементи от списък по няколко начина, като използваме методите на списъка на Python и Python, вградена във функцията del.
- Премахнете с помощта list.remove (x) : Това ще премахне елемент x от списъка.
>>> 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) >>>
- Премахнете с помощта list.pop ((i)) : Използва се за изтриване и връщане на елемент на която и да е позиция в списъка. Ако не е дадена позиция на индекс, тя изтрива елемента в края на списъка.
>>> 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) >>>
- Премахнете с помощта list.clear () : Това ще премахне всички елементи от списъка.
>>> a = (4, 3, 6, 1) # list of numbers >>> a (4, 3, 6, 1) >>> a.clear() # delete all items >>> a ()
- Премахнете с помощта на : Вградената в Python функция del може да се използва за изтриване на елементи от списъка.
>>> 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) Как сортирате списък в Python?
Отговор: За да сортираме списъци в Python, можем да използваме метода на списъка на Python вид (). Този метод сортира списъка на място и включва две ключови аргументи ключови думи и обратен .
The обратен ключовата дума може да бъде настроена да сортира във възходящ или низходящ ред. Като алтернатива можем да използваме вградената функция на Python сортирани (). Това обаче не се подрежда на място.
В # 3) Можете ли да добавите множество елементи към списък в Python?
Отговор: Можем да добавим множество елементи към списък, като използваме метода на списъка на Python append () в a цикъл , където прелистваме итерация и добавяме всеки елемент към списъка.
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()
Изход
Също така можем да добавим множество елементи, използвайки метода на списъка на Python разшири (). Работи като „ добави () в за цикъл ”Както видяхме по-горе.
>>> 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) >>>
Заключение
В този урок преминахме през някои често срещани методи на списъка на Python като добавяне, разширяване, вмъкване, изскачане, премахване, изчистване, индексиране, броене, копиране, и обратен .
Видяхме и няколко примера за това как да прилагаме тези методи в различни ситуации.
=> Посетете тук, за да видите поредицата за обучение на Python за всички
Препоръчително четене
- Урок за Python DateTime с примери
- Функции на списъка на Python - Урок с примери
- Урок за Python за начинаещи (практически БЕЗПЛАТНО обучение за Python)
- Урок за разширени списъци на Python (Сортиране по списък, обръщане, индексиране, копиране, присъединяване, сумиране)
- Методи на Java List - Сортиране на списък, Съдържа, Добавяне на списък, Премахване на списък
- Променливи на Python
- Python List - Създаване, достъп, нарязване, добавяне или изтриване на елементи