You are on page 1of 1
@ ° Listas ae Las listas son una estructura de datos muy flexible. Python permite manipuarlistas de muchas maneras. En esta leccion aprenderas algunas de ca ts ls: + Mangus Listas + capa tra eta Las lstas son conlutos ordenades de clemenios (nimeros, cadenas, lias, et) Las listas se delewtan por crchetes({]) y os elementos se + Racer ina ea ‘separan por coma, + itr ona Lasistas pueden contene elementos del mismo tp D3> primes = (2) 3 5) 7) 2, 13] >>> dtasLaborables = ["Lines", "Hartes", "Msércoles", “Jueves”, “Viernes") (© pueden canter elementos depos distntos: Dep Fecha = ("Lues", 27, "Octubre", 1997] (© pueden conteneristas: >>> peliculas = [ ["Senderoe de Gloria”, 1957], [Hannah y sus herwanas”, 4986)] Las istas pueden tener muchos riveles de anidamiento: >>> directors = [ [Stanley Kubrick, ["Senderos de Gloria”, 4957}], [woody Allen", [Hannah y aus herwanas™, 1986)) 1 Las variables de tipo lista hacen referencia ala sta completa oe laste = Ty, 45] boo Last I ‘a, 45] ‘Una lista que no contiene ning elemento se denomina sta vacia Doe asta = T1 Doo Lista u {Al defn una Ista se puede hacer referencia a ors variables >>> nowbre = "Pape >9> edad = 25 bos Lista = [nombre, edad] [rPepe", 25) ‘Como siempre, hay ue tener culdado al modifcar una variable que se ha utizac para defnir cras variables, porque esto puede afectar al resto de variables Nota: Este punto se trata en fa lncion Variables 2. + Sie ala objets inmutabes el resto de variables no resullanafectades, como muesta el siguiente ejemplo: Dee nombre = “Pepe” o> edad = 25 bee Mista nombre, edad] op Lista ['Pepe', 251 29> nanbre = “Juan” oo Mista [ePepe’, 25) + Para see ala de objelos mulables yal madara variable ge modifica el objlo, el rato de variables sl resulanafeciadas, como musstra el Sguente emp 253 nombres = ["ana", “Bernardo"] 29> edades = [22, 21] op Lista = [nonbres, edades] doo Mista [['Ana’, ‘Bernardo’, (22, 221] >> nombres += ["Cristina"] o> lista [E'ana', ‘Bernardo’, “cetetina'T, [22, 221] (Una tista puede contner Ista (que a su vez pueden conlanerlstas, que a su vez ae): D> personal = ["Ana", 25] >>> persona2 + ["Benito”, 23] bop Lista = [personat, persona2] bos asta [L'ana’, 25], ['Bentto', 23] Se puede acceder a cualquier elemento de una Hite eserbiendo el nombre dela stay ene corcheles el nimero de orden nl ist. El primer elemento de asta 2s of numero 0 o> Lista = (18, 26, 36, 48] >o> Lastal2] >o> Listale) pueden concalenar dos lstas uitzando la operacion uma, D> Lista = 128, 28, 30, 40) >>> Lista = (32, 22) ooo Lista = Mistat + Lista? + Lista bos Lista 19, 28, 30, 40, 30, 20, 10, 20, 30, 40] Concatenar listas Las isias se pueden concatenar cone simbolo dela Suma (+) oop vocales = DE) Ty >>> vocals Leperigiotl Dos vocals = vocales + [°U' >>> vocales ten ty ow >o> vocales = ["A"] + vocales >> vocals Tay ve, 1, 0, UT El operador suma (+) neceata que los dos operands sean lista boy woeales = PE Py >o> vocales = vocales + *Y" Traceback (most recent call last) File “*, Line 1, in cnodule> vocales = yocalas » "Y" TypeEeror: can only concatenate List (not “str to list “También se puede utzar el eperador += para aad elementos a una isa: pee vorales = PA] dee uneaes oe "FT de> vocales race] ‘Aunque en estos elemplos, os operadores + y += dan el mam resulado, no son equivalents, como se expca ena lacon de Variables 2 Manipular elementos individuales de una lista ‘cada elemento se ertica por su posielén en asta, teniendo en cuenta que se empieza a contr por 0 Do> fecha = 27, “Octubre”, 1997] >>> Feena[e) >> Fechal] >> Fechal2] Nose puede hacer referencia a elementos fuera de lista Doe fecha = a7, “Octane, 197) oo feet] Tacaback (aot recent call. last) fecha[3] ‘Se pueden uttzar nimeros negativas lute element ene e indice 1 y los elementos anteriores Henen valores descendentes) >>> fechal-1] >>> Fecha -2] “Octubre”, 1987) >>> fechal-3] Se puede modiiar cualquer element de una Ista haciendo referencia a su pose: Do» fecha = (27, "octubre", 1997] >>> Fechal2) = 1998 >>> Fecnafo] 27 >o> Fechal] octubre >>> fechal2] 1998 Manipular sublistas De una ist se pueden extrac sublists, utiizando la notacion nombeDeListaico mt], donde inicio y lite hacen el mismo papel queen tipo range(nco, it). Oop tas = ["Lunes", “Warkes" “Niereoles", “Jueves”, "Viernes", ~S#bado", “Doninge™] bo» dias[i:4] # Se extras una Lista con los valores 4, 2 y 2 ['Martes', “Mtércoles', “Jueves”] o> dias[4:5] # Se extrae una Lista con el valor ['viernes*] >o> dtas[4:4] # Se extrae una Lista vacia 0 >o> dtas[:4] # Se extras una Lista hasta al valor 4 (ne sncluséo) [lunes', ‘Nantes, “Miércoles', ‘Jueves: o> dtas[d4:] # Se extras una Lista desde al valor 4 (anclutco) [vernes", “sabego", -vomngo"] bos dtas[:] # Se extras una Lists con todos los valores tunes", "Nantes", ‘miércoles', ‘Jueves, "Viernes", ‘Sdbado", ‘Dominge'] Se puede modificar una lista modiicando subistas. De esta manera se puede modfcar un elemento 0 varios ala vez e insertar © elimnar lemenios, Do letras = DA, Be OE, Pe wT >>> letras[tsd] = ["X°] # Se sustituye 1a sublista [°8°,°C°,"0"] por [°X'] dos Letras. Day x EF te TH) o> letras[iia] = ["V", "2"] # Se sustituye La sublista (°X',E's"F'] por ['Y','2"] UNG ti, 8, a] o> Letras(e:t] = ["@"] # Se sustituye 1a sublista [‘A'] por ['0'] >o> Letras. Gan >o> Letrae[3s3] >>> Letras. rev a bo» Letras{@s3] dos letras roy vy 'y"] # Inserts 1a Lista ['U', V'] en 1a positon 3 je 1 4 elimina 1a sublista [°9','¥', °2"] Al define subistas, Python acepa valores tera del rango, que se interpetan como exremos (a final oa principio dela ta). Doe Letras = ED, EF] > bot, ow] 4 Made (°6", “H"] al final de 1a Lssts do» letras Peek ee es Ol >o> Letras{1e0:200) = ["I", "I"] fade [°x", °"] al final de Ja lista >>> Letras Tioltelgiery tats Gy fay Si] o> letras[-100:-50] = ["a*, "e*, “c*] # Ahade [ >o> Letras. ek TCP] al petnespte de la La palabra reservada del La palabra reservada do! permite eliminar un elemento o varios elementos ala vez de una isa incuso la misma Ista de> letras = ("A") “B,C, "Oy "ES, OF) eT, WY bos del Letras[4]” # Elimina 1a’ sublista [*E") o> Letras, CMG Ors iets Hes i >o> Gel Letras[isd] # Elinina Ia sublista ['8", ‘c', '0°) Pager gers >> del letras” # Elinina completamente 1a liste o> Letra: Traceback (nost recent call lest) File "epyshell@b", Line 2, in? letras NaneError: name “letras' is not defined ‘8130 intentaborrarun elemento que no ext, se produce un ero: op Letras = (PAT, “8, "Cs >o> del Letras[ie] Traceback (nost recent call last) File "cpyshell#b>", Line 2, in cmodule> el Letrae(10) IndexError: List assignment index out of range ew] ‘Aunque si se hace referencia a subsas, Python si que acepta valores fuera de rango, pero logicamente no se modican as Ista. Dep Letras = A, "8, "yO EY OF >>> del Letras[100:200] # No elimina nada boo Letra. CAs Be I es Copiar una lista ‘Con variables de tp entero, decal ode cadena, es ci taner una copia de una variable para consewar un valor queen a variable eign se ha perado: mans o> b= a # Hacemas una copia del valor de 3 6.8) oh a = 4 # de manera que aunque canbienos el valor de = boo a,b # v1. b conserva el valor anterior da a an caso de nacesitarlo “3 Pero si hacemos esto mismo con sas, nos podemos evar un sorpresa D> Lastad = AY, B,C] vo» Lista? = Listal # Intantanoe hacer una copia de la Liste Listat bos Lastad, Met? Ras Ue “8S >o> del Lastat[1] # Eliminanoe el elenento ['8"] de la lista Lista >o> Lastal, listed # ... pero descubrinos que tanbién ha desaparecido de 1a lista Liste2 (as el ta, cp El motvo de este comportamianto (que se expla con ms detale en la Jecoon Varsles 2), 28 que los enteos, dacimales ycadenas son obetos Inmutabes yas sta son obetos mutabies ‘51 queremos copiar una sta, de manera que conservemos su valor aunque mosiiquemos a sta original deberos utiza a notacién de sublists. o> tastan = DA", 8, "CT bop L4sta2 = Listad[:] # Hacenos una copia de Ia lista Listen >op Lastal, lasted Rage Ws, CU Ae. TY ds» ool Listel[1] | # Elaninanos el elemento ['8'] de 1a Ltsta 1astel o> Listal, listed... y en este caso Lista2 sigue conservando #1 valor original de Listal (Ua, el bay he) En ol primer caso las varabes stay yfsta2 hacen reerencia ala misma lista almacenada en la memoria del ofdenadr. Por eso al elimnar un ‘elemento de tay, también desaparece de lsta2 Sin embargo en o segundo caso lta y lista? hacen referencia a stas dsintas (aunque tongan fos mismos valores, estan almacenatias on lugares stinios dela memoria del ordenador Por es0, al emiar un elemento de lite, nose elmina en Ista Recorrer una lista ‘Se puede recorer una lista de princlpo ath de dos formas dst: + Una forma es recorer drectament los elementos de fa Ista, es deck, que la variable de contro de bucle tome Ios valores de a lista que ‘estamos recoriende: Recorrer una lstadirectamente Puode verlaelecucién paso a paso de este programa utiizando los iconos de avance reroceso situades abajo ala derecha, © + La otra forma es recrrrindectamente ls elementos dela isa, es det, qu la variable de conto del bucl tome como valores les fdces de last que estar recoriando (12. et) En este caso, para acceder alos valores del lista hay que uliza east Recorrer una lista indirectamente Puede ver la elecuicn paso a paso de este programa ulizando ls cones de avance y eoceso stuades abajo ala derecha, La primera forma es mas sencila, pero dle permite recrrer la Ista de pnp afin ulizar os valores de asta, La segunda forma es mas compicada, pero permite mas fexbliad, come muestian los siguientes ejompos: + recover una isa al reves Puede vera ejacucicn paso a pasa de ese programa uiizando le conos de vance reoceso situados abajo ala derecha, Recorrer y modificar una lista aie (letras Puede vera elecuicn paso a paso de este programa uiizando ls \eonos de avance y retraces sitades abajo ala derecha, Para eiminr los elementos de una sta necestamos recortr Ia Ista al revés. Si ecotremeos la sta de principio fn al elimina un valer dela lista, la sta se acoria y cuando inientamos acceder alos uttmes valores se preduce un eror de Indice fuera de rango, como muesra el siguiente ejemplo en el que se elminan ls valores de una lista que valen “ + elmnar elementos de asta Eliminar valores de una lista (incorrecto) eT Cee) coe eee pessres) [Puede vor a ejecuctn paso a paso de ese programa uitzando le cones de avance y retrocese etiades abajo ala derecha, © La solucion es recor asta en orden inverso, de manera que aunque se eliminen elementos yl lista se acot, los valores que todavia no se han rectisasiguen exitendo an la misma posilen que al prinspo. Eliminar valores de una lista (correcto) Puede ver a ejecuccn paso a pasa de ese programa uizano ls conos de vance y eoceso stuades abajo ala derecha, © Saber si un valor esta ono en una lista Para saber si un valor esta en una lista Se puede wUtzar el operador in. La sintaxs seria “elemento in Ista" y dewuelve un valor logic: Tue si el ‘lemento esi en lasts, Fase ail elemento no est ena ts, Por ejemplo, e programa siguiente compruca sel usuario es una persona autorzada Para saber s un valor no esta en una sta se pueden uilizar fos operadores notin La shntaxs seria “elemento rot loge: Tru sa elemento no esta en asta, Fase sil elemento est ena lista lea" y dewuelve un valor Per ejemplo, el programa siguiente comprucba se usuario es una persona auterzada ‘iuma moaticacon de esta pagina: 21 de marzo de 2014 eaa

You might also like