48
1 04 – Listas en Python 3 Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales

04 - Listas en Python 3 (2)

Embed Size (px)

DESCRIPTION

Listas en Python

Citation preview

  • 1

    04ListasenPython3

    DiegoAndrsAlvarezMarnProfesorAsociado

    UniversidadNacionaldeColombiaSedeManizales

  • 2

    Tabladecontenido

    Operadores

    :,+,*

    [:],[i],[i:j],[i:j:k]

    is,isnot

    in,notin

    =,!=

    ,=

    del,[]

    Funciones:

    len()

    id()

    eval()

    all()

    any()

    list()

    Mtodos:

    append(),copy()

    extend(),insert()

    count(),index()

    join(),remove()

    pop(),clear()

    sort(),reverse()

  • Tiposdedatos Tiposdedatosescalares:

    Nmerosenteros,flotantes,complejos,fracciones,lgicos(booleanos)

    Tiposdedatossecuenciales: Secuenciasdebytes,cadenas

    Tiposdedatosestructurados: Listas(lists):secuenciasordenadasdevalores

    Tuplas(tuples):secuenciasinmutablesdevaloresordenados

    Conjuntos(sets):conjuntonoordenadodevalores

    Diccionarios(dictionaries):conjuntonoordenadodevalores,quetienenunallavequelosidentifican

    Objetos:mdulos,funciones,clases,mtodos,archivos,cdigocompilado,etc. Constantes

  • Listas

    Laslistaspuedentenerdiferentestiposdeelementos

    Alaslistasselespuedeindexaryhacerslicing

    Laindexacindelaslistascomienzaen0

    Laslistassepuedenconcatenar

    Adiferenciadelascadenas,laslistassepuedenmodificar:sonmutables

    Creaunduplicadodelalista,nounareferenciaaesta

  • 5

    Listas

  • Refirindoseaelementosfueradelalista

  • Listas

  • ReferenciasenPython

    Seaplicanatiposdedatosmutables(ejemplo:listasydiccionarios).

    Eloperador=esunoperadorquecopiareferencias.Lainstruccind=ccopiaunareferenciaalista,nolalistamisma

    Utiliceslicing[:]oelmtodocopy()siquierecopiarcomotallavariable

  • Visualicelaejecucindelcdigoconhttp://www.pythontutor.com/

    http://www.pythontutor.com/

  • Losoperadores+y*conlistas

    Observequeeloperador+generaunacopiadea,nousaunareferenciaaa

  • https://docs.python.org/3/tutorial/datastructures.html#comparingsequencesandothertypes

    Comparacindesecuencias

    https://docs.python.org/3/tutorial/datastructures.html#comparing-sequences-and-other-types

  • Ordenamientolexicogrficodecadenas

    (seaplicadeigualformaalistas)

    Thecomparisonuseslexicographicalordering:firstthefirsttwoitemsare compared, and if they differ this determines the outcome of thecomparison;iftheyareequal,thenexttwoitemsarecompared,andsoon,untileithersequenceisexhausted.Losdiccionariosseordenandeestaforma.

    http://es.wikipedia.org/wiki/Orden_lexicogrfico

    http://es.wikipedia.org/wiki/Orden_lexicogr%C3%A1fico

  • Comparacindelistas The comparison uses lexicographicalordering: first the first two items are

    compared, and if they differ this determinesthe outcome of the comparison; if they areequal,thenexttwoitemsarecompared,andso on, until either sequence is exhausted.Losdiccionariosseordenandeestaforma.

  • Comparacindelistas

    Elprimerejemplofallayaquetype([1,2,3]) != type(3)yelsegundoejemploesvlidoyaque2

  • Losoperadoresiseisnot

    Losoperadores"is"e"isnot"verificanlaidentidaddelobjeto.

    "aisb"retornaTruesiysolosiaybsonelmismoobjeto:id(a)==id(b)

    "aisnotb"retornaTruesiysolosiaybnosonelmismoobjeto:id(a)!=id(b)

  • Comparandoise== ==y!=sonoperadoresquecomparanlosvaloresdelosobjetos

    iseis notsonoperadoresquecomparanlaidentidaddelosobjetos

    Observeque"a==b"noimplicaque"aisb" Deigualforma,"aisb"noimplicaque"a==b"

  • EloperadorisVariablesintern

  • Agregarelementosaunalista,concatenacindelistas

    Eloperador+concatenalistaconlista,nolistaconelemento.Siquiereagregarunelementoaunalista,utiliceelmtodoappend()

    Elmtodoappend()esmuchomseficientequeutilizareloperador+especialmenteconlistasdegrantamao.

  • +vs.append()

  • Lecturadelistasconeval()

    Leyunacadenadetexto

    eval()evalulacadenadetextocomosifueraunaexpresinvlidadePython.

    Formunalistaconlacadenadetexto

  • Insertarelementosenunalista

    Nouselaforma1conlistasmuygrandes,yaqueesineficiente.

    2.append()agregaunelementoalalista

    4.extend()puedeagregarvarioselementosalalista

    5.Coninsertsepuedenponerelementosencualquierposicindelalista

  • 24

    Losoperadoresinynot inLosoperadoresinynot inverificansiunvalorestpresenteenunalista,osiunacadenaesunasubcadenadeotracadena

  • 25

    Losoperadoresinynot inEsosoperadoressepuedenencadenar:

  • Buscandovaloresenunalista

    1.count()retornaelnmerodeelementosenunalista

    2.eloperadorinesmsrpidoqueifcount(L)==1:

    4.index()retornaelndicedelaprimeraocurrencia

    5.siindex()noencuentra,selanzaunaexcepcin

  • Elmtodoindex()enlistas

    index()retornaelvalordelaprimeraocurrencia

    index() puede tener dos argumentos extra parahacer la bsqueda ms gil. El primero dicedonde empezar y el ltimo donde terminar.Recuerde que el primer ndice de la lista es elcero.

  • Elmtodoindex()enlistas

  • Listasycadenas

  • Eliminarelementosdeunalista

    Observequelaslistasnoquedanconvacosdespusdeeliminarelementos

    BorralavariablemilistadelamemoriaRAM

    delnoesaplicableacadenas(soninmutables)

    Equivalenteamilista.clear()

  • Borrandoelementosdeunalistacon[]yslicingyelmtodoclear()(envezdeusardel)

  • Errorenelusodedel

  • Eliminarelementosdeunalista

    remove()soloborralaprimeraocurrenciadelalista

    remove()lanzarunaexcepcinsielelementoaeliminarnoexiste.

  • Eliminandoelementosdeunalistacon

    pop()

    Observequepop()retornaelelementoeliminado,mientrasqueremove()ydelnolohacen.

    pop()conunndiceretornayeliminaelelementoindicado

  • Asignacindeelementosusandolistas(sequenceunpacking)

    Sepuedeutilizarestetrucoconfunciones,demodoqueestasretornenvariosvaloresalavez.

  • Listasenuncontextobooleano

    Unalistavacaretornafalso,unalistaconalmenosunelementoretornaverdadero

  • insert(),remove()ysort()retornanNone

  • Usandounalistacomounapila

  • Usandounalistacomounacola

  • Matrices:listasdelistas

  • Implementandomatricesconlistasdelistas

    nestedlistcomprenhension

  • Formaincorrectadecrearmatrices

  • Formaincorrectadecrearmatrices

  • Otraformacorrectadecrearlasmatrices

  • Tamaodelasvariablesenmemoria

    Varandeimplementacinaimplementacindelinterpretador.

  • Tiposdedatosmutablesvsinmutables

    INMUTABLES: An object with afixed value. Immutable objectsinclude numbers, strings andtuples. Such an object cannot bealtered. A new object has to becreated if a different value has tobe stored. They play an importantrole in places where a constanthashvalueisneeded,forexampleas a key in a dictionary: ejemplo:floats,cadenas,tuplas

    MUTABLES: Mutable objects canchange their value but keep theirid():ejemplo:listas,diccionarios

  • 49

    Referencias

    Wikipedia http://www.inventwithpython.com/ http://www.diveintopython3.net/ DocumentacindePython:

    https://docs.python.org/3/tutorial/index.html https://docs.python.org/3/

    MarzalVar,Andrs;GraciaLuengo,Isabel;GarcaSevilla,Pedro(2014).IntroduccinalaprogramacinconPython3.Disponibleen:http://dx.doi.org/10.6035/Sapientia93

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49