common python list methods with syntax
El tutorial explica la sintaxi i l'ús dels mètodes de llista de Python comuns, com ara afegir a la llista, ordenar la llista, escapar, afegir, copiar, eliminar, invertir, etc.:
Les llistes de Python no només s’utilitzen per emmagatzemar dades. Hi ha estructures de dades potents si s’utilitzen correctament. Tot i això, no els podem utilitzar eficaçment si no coneixem els seus mètodes.
Tot i que Python té algunes funcions integrades que poden funcionar en llistes, les llistes de Python tenen mètodes que es poden utilitzar per operar al seu objecte de llista, tant al seu lloc com fora de lloc.
=> Consulteu aquí TOTS els tutorials de Python
Què aprendreu:
- Mètodes comuns de llista de Python
- Conclusió
Mètodes comuns de llista de Python
Abans d’endinsar-nos en els mètodes de llista habituals, és important entendre algunes característiques d’una llista de Python.
- Una llista Python és una col·lecció de zero a infinit (tants com el vostre ordinador pot permetre) tipus de dades ( números , Cordes , booleans , tuples , llistes , etc) envoltat de claudàtors amb cada element separat per una coma (,).
- Una llista Python és un fitxer ordenat , mutable i utilitza el fitxer numeració basada en zero sistema, és a dir, tots els seus elements s’identifiquen de manera única mitjançant un número d’índex que comença a partir de 0 i acaba a n-1, on n és la longitud de la llista.
Amb això en ment, podem aprofundir amb seguretat en els mètodes de llista de Python. És important saber que Python List en té molts mètodes i Python té molts mètodes integrats per treballar en dades de llista amb diversos propòsits.
Nota :Avançant, tots els exemples d’aquest tutorial s’executaran directament des d’un intèrpret d’ordres Python, tret que s’indiqui el contrari.
Mètode per afegir
Abans de començar a realitzar una operació en una llista, potser voldríem afegir-hi dades. La llista Python té els mètodes habituals següents per afegir elements a la seva llista.
# 1) list.append (x)
El afegir () el mètode pren un element com a argument i l’afegeix al final de la llista.
Com es va veure més amunt, les llistes de Python estan ordenades. Per tant, la posició de cada element en una llista és important. Si afegim un element a una llista i volem que sigui l’últim element d’aquesta llista, llavors necessitem append ().
Exemple 1 :Al codi següent, la nostra llista conté un nom (Cadena) com a primer element i edat (número) com a segon element. Volem afegir un tercer element sou (número) a la llista tal que tenim
list(name, age, salary)
A continuació es mostra un tutorial d’una petxina de 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 ) és similar a a (len ( a ):) = (X).
Considereu l'exemple següent:
Afegim un quart element gènere (Cadena) a la nostra llista de detalls definida anteriorment.
>>> gender = 'Male' # define a gender >>> details(len(details):) = (gender) # add gender to the end of the list >>> details ('Enow Kevin', 30, 165000, 'Male') >>>
Nota :A l'exemple anterior, hem utilitzat len () que és una funció integrada de Python que pot funcionar en una llista.
# 2) list.extend (iterable)
estendre (iterable) pren un fitxer iterable com a argument i afegiu cada element en aquest iterable a la llista.
Aquest mètode utilitza afegir ( ) sota el capó. Aquest mètode és fantàstic si tenim una col·lecció d’elements que volem afegir cada element a una altra llista.
Exemple 2 :Diguem que tenim dues notes acadèmiques dels estudiants gradeScience i grauArt i decidim fer una operació comuna a les notes. Una manera serà unir-los primer.
A continuació es mostra un recorregut detallat per un intèrpret d’ordres 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)
El mateix es pot aconseguir amb “ append () en un bucle ” . Tenint en compte que el estendre () El mètode inclou un iterable i afegeix cada element en aquest iterable a la llista, podem utilitzar un per a bucle per demostrar com funciona.
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))
Sortida
És important conèixer la diferència entre afegir (x ) i estendre (iterable) .
Diferència entre els mètodes de la llista Python: append i iterable.
# | afegir (x) | estendre (iterable) |
---|---|---|
1 | Acull un argument i podria ser iterable | Acull un argument i hauria de ser iterable |
2 | Afegeix un element a una llista | Afegeix cada element de l'iterable a una llista. |
Exemple 3 :Per veure clarament la diferència entre afegir i ampliar, considerem aquest exemple. Notem que tots dos listApp i listExt prendre com a argument un iterable, però el que canvia és la sortida.
>>> 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)
Mètode Python append () va agafar l'iterable, el va considerar com un element i el va afegir al final de la llista mentre era el mètode Python extend () va agafar l'iterable i va afegir cada element d'aquest iterable a la llista.
# 3) list.insert (i, x)
El mètode de la llista Python inserir () inclou dos arguments (posició, ítem) i insereix l'element a la posició donada a la llista.
El mètode inserir () és útil quan volem afegir elements a una llista i tenir control sobre on volem que s’afegeixin precisament a la llista. A diferència de append () i extend () que afegeixen elements al final d'una llista, inserir () ens permet afegir elements en qualsevol posició que vulguem.
Exemple 4 :Suposem que tenim una llista de noms per ordre d’excel·lència i que després descobrim que hem deixat de banda un nom i se suposa que s’afegirà a la llista abans d’un nom determinat. En aquest cas, tots dos append () i extend () no ajudarà, ja que volem afegir l'element en una posició determinada.
La solució serà obtenir la posició índex del nom abans del qual volem afegir el nostre nou nom i utilitzar-lo insert () per afegir-lo en aquesta posició.
>>> 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')
Nota: A l'exemple anterior, hem utilitzat el mètode de llista Python índex () per obtenir la posició índex d'un element d'una llista ( més sobre això més endavant ).
El concepte de inserir (índex, x) és molt important per entendre-ho. El primer argument és el posició índex de l'element abans del qual inserir.
El que significa això llista .insert (0, x) inserirà x davant de l'element de l'índex 0 i llista . inserir (només ( llista ), x ) inserirà x al final de la llista (similar a list.append (x)) abans de la posició a l’índex len (llista) (aquest índex no existeix per a cap llista)
Mètode de resta
A Python, tant com podem afegir elements a una llista, les llistes de Python també ens permeten eliminar o eliminar elements de les llistes.
# 1) list.pop ((i))
El pop () El mètode elimina i retorna un element d'una llista. Aquest mètode pot prendre un valor d’índex opcional com a argument (representat pel claudàtor al voltant d’i a la signatura del mètode que indica “opcional” i no una llista), que indica la posició de l’índex des d’on treure un element.
Si no se n’indica cap, el valor per defecte és -1, és a dir, l’últim element de la llista s’eliminarà i es retornarà.
Exemple 5 :Donada la llista de cotxes que hi ha a continuació, podem decidir eliminar elements d’aquesta llista en qualsevol posició d’índex que desitgem, gràcies a pop ()
>>> 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) llista.remove (x)
El mètode de la llista Python eliminar (x) elimina la primera aparició d'un element que és igual a x.
El mètode remove () és útil quan volem eliminar un element d’una llista, però no ens importa l’element i no sabem on es troba exactament a la llista.
Exemple 6 :Tenim una llista de llibres i volem eliminar un llibre específic per nom, ja que ja no el necessitem.
>>> 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')
Nota: Si es dóna un element a remove () com a argument però no existeix a la llista, a ValueError es planteja. Per tant, aquest mètode sempre s’ha d’anomenar dins d’un fitxer provar-excepte per gestionar l'excepció.
Podem veure algunes poques diferències entre els mètodes pop () i remove () com es mostra a continuació:
# | pop () | remove () |
---|---|---|
1 | Accepta un argument opcional i ha de ser una posició d’índex de l’element a suprimir. Si l'índex està fora de l'abast, es genera un IndexError | Accepta un argument i hauria de ser l’element a suprimir. Si l'element no es troba a la llista, es genera un ValueError |
2 | Elimina l'element de la llista i el torna. | Elimina l'element de la llista però no el torna. |
# 3) list.clear ()
Mètode de llista Python clar () elimina tots els elements de la llista i, per tant, la fa buida. No necessita arguments.
Aquest mètode és útil per reassignar l'objecte de la llista amb valors nous.
Exemple 7 :Tenim una llista que conté una col·lecció de noms, però volem substituir-los per noms nous. En aquest cas, primer esborrem els noms anteriors deixant l’objecte de la llista buit i, a continuació, afegim els noms nous amb un dels diferents mètodes de llista Python per a una addició que hem vist més amunt.
>>> 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')
Nota :Podem aconseguir el mateix amb de l' llista (:).
Molts poden dir que en lloc d’utilitzar-ho clar (), per què no acabem de reassignar la llista amb una llista buida com aquesta
>>> a = (4,5,3) # list object containing numbers >>> a= () # re-assign to an empty list >>> a ()
Doncs aquí teniu el problema de fer-ho. Si teniu dues variables ( a i b ) que fan referència a un objecte de llista ((4,5,3)), cridant clear () a qualsevol de les variables (per exemple a ) eliminarà els elements de l’objecte de la llista referenciat.
Tanmateix, si torneu a assignar qualsevol de les variables (per exemple a ) amb una llista buida, després la que s'ha reassignat ( a ) deixarà de fer referència al mateix objecte de llista que b .
>>> 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)
Mètodes d'anàlisi
La majoria de les vegades volem conèixer i comprendre els elements de la nostra llista d'objectes. La llista Python té alguns mètodes que podem utilitzar per comprendre els seus elements.
# 1) list.index (x (, inici (, fi))))
El mètode de la llista Python índex (x) retorna un índex basat en zero a la llista del primer element el valor del qual és igual a x. Es necessita un argument obligatori i dos opcionals. El primer argument (x) representa l’ítem que volem trobar el seu índex.
quina empresa és actualment líder en serveis d’allotjament web basats en el núvol?
Els dos darrers arguments (inici, final ) determinar un índex inicial i final (exclusiu) a partir del qual cercar. A diferència d'altres llenguatges de programació com JavaScript, on és el seu mètode equivalent índex de () retorna -1 quan no hi ha cap element, el mètode de llista Python índex () genera un ValueError al seu lloc.
Exemple 8 :Referència Exemple 4 on hem utilitzat índex () per obtenir la posició índex d'un nom en una llista de noms. En aquest exemple 8, veurem com utilitzar els arguments opcionals per limitar la cerca a una subseqüència particular de la llista.
>>> 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)
El mètode de la llista Python comptar (x) s'utilitza per determinar quantes vegades un determinat element x apareix en una llista.
A diferència de conjunts() , Les llistes de Python poden contenir ítems duplicats, si ens interessa saber-los i determinar quantes vegades es duplica un ítem, comptar () és el camí a seguir.
Exemple 9 : Suposem que tenim un objecte de llista que conté els noms dels senadors en funció dels seus vots. Com més es vota un senat, més apareix el seu nom a l'objecte de la llista. Ara volem esbrinar quants vots té un senat concret.
>>> 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
Nota :El mètode de la llista Python comptar () retorna zero (0) si l'element no apareix a la llista.
# 3) list.sort (clau = Cap, revers = Fals)
El mètode de la llista Python ordenar () ordena les dades de la llista al lloc. Inclou dos arguments de paraules clau.
- clau ( per defecte a Cap ) : Especifica la funció d'un argument utilitzat per extreure elements de la llista i els prepara per a la comparació. Per exemple, si tenim una llista de nombres positius, però volem que la nostra funció d’ordenació ordeni els seus valors negatius, podem utilitzar aquesta clau per aconseguir-ho.
- invers ( per defecte és Fals ) : És un valor booleà i, si s'estableix en True, s'ordenarà en ordre descendent. El seu valor és Fals per defecte, per tant, s’ordena en ordre ascendent.
Exemple 10 :Tenim una llista de números i volem conèixer el nombre més gran d’aquesta llista.
>>> 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
Nota: Hem utilitzat el mètode de llista Python còpia () per fer una còpia superficial de la nostra llista ( Més informació sobre això més endavant).
Exemple 11: Per demostrar l’ús de la clau, ordenem el valor negatiu dels elements de la llista.
>>> 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 partir de la sortida anterior, veiem que, tot i que hem ordenat en ordre descendent, la sortida és en ordre ascendent. Això es deu al fet que la nostra funció lambda bàsicament la va fer tal que la comparació es va fer amb els valors negatius de cada element de la llista.
Nota :Com que la clau especifica una funció d'un argument, hem utilitzat un expressió lambda per definir una funció anònima. Tot el que fa és retornar el valor negatiu de cada element de la llista.
Altres mètodes
En aquesta secció, veurem alguns mètodes de llista de Python que poden no incloure’s en cap de les categories descrites anteriorment.
# 1) list.copy ()
El mètode Python còpia () retorna a poc profund còpia de la llista. Poc profund significa que només fa una còpia del primer nivell d’una llista ( més sobre això més endavant ).
Aquest mètode és útil per mantenir els valors de la llista original abans de modificar-la. Com hem vist Exemple 7 anteriorment, simplement assignar una variable que faci referència a un objecte de llista a una altra variable no crea un objecte nou. Més aviat, les dues variables faran referència al mateix objecte.
Per tant, canviar un farà que l’altre canviï.
Exemple 12 :Exemples de referència 10 i 11 per veure com s’utilitzava aquest mètode.
Nota :És interessant saber que amb això es pot aconseguir el mateix tallar ( a (:))
Exemple 13 :Per entendre millor el significat de poc profund a la descripció de còpia (), considerem l'exemple següent.
>>> 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)) >>>
L'exemple anterior demostra que la còpia superficial significa que qualsevol iterable imbricat d'una llista no es copiarà.
# 2) list.reverse ()
El mètode de la llista Python al revés () inverteix els elements d'una llista al seu lloc. No cal cap argument.
Aquest mètode és útil quan volem canviar l’ordenació a ascendent o descendent després de l’ordenació.
Exemple 14 :Hem ordenat la nostra llista per ordre ascendent i, posteriorment, volem obtenir l'ordre descendent de la llista ordenada. També podríem utilitzar el mètode de llista Python ordenar () i set al revés a True, o podríem utilitzar el fitxer al revés () llista de mètodes com es mostra a continuació.
>>> 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) >>>
Preguntes freqüents
P # 1) Com puc eliminar alguna cosa d'una llista de Python?
Resposta: Podem eliminar elements d’una llista de diverses maneres mitjançant els mètodes de llista Python i la funció del Python incorporada.
- Elimina amb list.remove (x) : Això eliminarà l'element x de la llista.
>>> 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) >>>
- Elimina amb list.pop ((i)) : S'utilitza per suprimir i retornar un element en qualsevol posició de la llista. Si no es dóna una posició d'índex, elimina l'element al final de la llista.
>>> 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) >>>
- Elimina amb list.clear () : Això eliminarà tots els elements de la llista.
>>> a = (4, 3, 6, 1) # list of numbers >>> a (4, 3, 6, 1) >>> a.clear() # delete all items >>> a ()
- Elimina amb de l' : La funció integrada de Python es pot utilitzar per eliminar elements de la llista.
>>> 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 () >>>
Q # 2) Com s'ordena una llista a Python?
Resposta: Per ordenar llistes a Python, podem utilitzar el mètode de llista Python ordenar (). Aquest mètode ordena la llista al seu lloc i inclou dos arguments de paraules clau clau i al revés .
El al revés la paraula clau es pot configurar per ordenar-la en ordre ascendent o descendent. Com a alternativa, podem utilitzar la funció integrada de Python ordenat (). Tanmateix, això no s’ordena al seu lloc.
P # 3) Podeu afegir diversos elements a una llista de Python?
Resposta: Podem afegir diversos elements a una llista mitjançant el mètode de llista Python append () a bucle , on recorrem un iterable i afegim cada element a la llista.
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()
Sortida
També podem afegir diversos elements mitjançant el mètode de llista Python estendre (). Funciona com ' afegir () en un per a bucle ”Com hem vist més amunt.
>>> 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) >>>
Alternativament, podríem concatenar amb l’operador +. Tot i això, això no funciona en el seu lloc . És a dir, retornarà la llista concatenada mentre les llistes originals es mantinguin inalterades.
>>> 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) >>>
Conclusió
En aquest tutorial, hem passat per alguns mètodes de llista Python comuns afegir, ampliar, inserir, esclatar, eliminar, esborrar, indexar, comptar, copiar, i al revés .
També vam veure diversos exemples de com aplicar aquests mètodes en diverses situacions.
=> Visiteu aquí per veure la sèrie d'entrenament de Python per a tothom
Lectura recomanada
- Tutorial de Python DateTime amb exemples
- Funcions de la llista Python: tutorial amb exemples
- Tutorial Python per a principiants (entrenament pràctic GRATU PyT en Python)
- Tutorial de llista avançada de Python (Ordenació de llista, inversió, índex, còpia, unió, suma)
- Mètodes de llista de Java: ordena llista, conté, afegeix llista, elimina llista
- Variables de Python
- Llista de Python: crear, accedir, tallar, afegir o eliminar elements