documentación de tutorial de python - 3.4

13
6. Estructuras de datos Este capítulo describe algunas cosas que ya aprendiste en más detalle, y agrega algunas cosas nuevas también. 6.1. Más sobre listas El tipo de dato lista tiene algunos métodos más. Aquí están todos los métodos de los objetos lista: list.append(x) Agrega un ítem al final de la lista. Equivale a a[len(a):] = [x] . list.extend(L) Extiende la lista agregándole todos los ítems de la lista dada. Equivale a a[len(a):] = L . list.insert(i, x) Inserta un ítem en una posición dada. El primer argumento es el índice del ítem delante del cual se insertará, por lo tanto a.insert(0, x) inserta al principio de la lista, y a.insert(len(a), x) equivale a a.append(x) . list.remove(x) Quita el primer ítem de la lista cuyo valor sea x. Es un error si no existe tal ítem. list.pop([i]) Quita el ítem en la posición dada de la lista, y lo devuelve. Si no se especifica un índice, a.pop() quita y devuelve el último ítem de la lista. (Los corchetes que encierran a i en la firma del método denotan que el parámetro es opcional, no que deberías escribir corchetes en esa posición. Verás esta notación con frecuencia en la Referencia de la Biblioteca de Python.) list.clear() Quita todos los elementos de la lista. Equivalente a del a[:] . list.index(x) Devuelve el índice en la lista del primer ítem cuyo valor sea x. Es un error si no existe tal ítem. list.count(x) Devuelve el número de veces que x aparece en la lista. list.sort() Ordena los ítems de la lista in situ.

Upload: gatitahanyou

Post on 16-Sep-2015

10 views

Category:

Documents


4 download

DESCRIPTION

Python guía

TRANSCRIPT

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 1/13

    6.EstructurasdedatosEstecaptulodescribealgunascosasqueyaaprendisteenmsdetalle,yagregaalgunascosasnuevastambin.

    6.1.MssobrelistasEltipodedatolistatienealgunosmtodosms.Aquestntodoslosmtodosdelosobjetoslista:

    list.append(x)Agregauntemalfinaldelalista.Equivalea a[len(a):]=[x].

    list.extend(L)Extiendelalistaagregndoletodoslostemsdelalistadada.Equivalea a[len(a):]=L.

    list.insert(i,x)Insertauntemenunaposicindada.Elprimerargumentoeselndicedeltemdelantedelcualseinsertar,porlotanto a.insert(0,x)insertaalprincipiodelalista,y a.insert(len(a),x)equivalea a.append(x).

    list.remove(x)Quitaelprimertemdelalistacuyovalorseax.Esunerrorsinoexistetaltem.

    list.pop([i])Quitaeltemenlaposicindadadelalista,ylodevuelve.Sinoseespecificaunndice, a.pop()quitaydevuelveelltimotemdelalista.(Loscorchetesqueencierranaienlafirmadelmtododenotanqueelparmetroesopcional,noquedeberasescribircorchetesenesaposicin.VersestanotacinconfrecuenciaenlaReferenciadelaBibliotecadePython.)

    list.clear()Quitatodosloselementosdelalista.Equivalentea dela[:].

    list.index(x)Devuelveelndiceenlalistadelprimertemcuyovalorseax.Esunerrorsinoexistetaltem.

    list.count(x)Devuelveelnmerodevecesquexapareceenlalista.

    list.sort()Ordenalostemsdelalistainsitu.

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 2/13

    list.reverse()Invierteloselementosdelalistainsitu.

    list.copy()Devuelveunacopiasuperficialdelalista.Equivalentea a[:].

    Unejemploqueusalamayoradelosmtodosdelista:

    >>>a=[66.25,333,333,1,1234.5]>>>print(a.count(333),a.count(66.25),a.count('x'))210>>>a.insert(2,1)>>>a.append(333)>>>a[66.25,333,1,333,1,1234.5,333]>>>a.index(333)1>>>a.remove(333)>>>a[66.25,1,333,1,1234.5,333]>>>a.reverse()>>>a[333,1234.5,1,333,1,66.25]>>>a.sort()>>>a[1,1,66.25,333,333,1234.5]>>>a.pop()1234.5>>>a[1,1,66.25,333,333]

    Quizshayasnotadoquemtodoscomo insert, removeo sort,quesolomodificanalalista,notienenimpresounvalorderetornodevuelvenNone.[1]EstoesunprincipiodediseoparatodaslasestructurasdedatosmutablesenPython.

    6.1.1.UsandolistascomopilasLosmtodosdelistahacenqueresultemuyfcilusarunalistacomounapila,dondeelltimoelementoaadidoeselprimerelementoretirado(ltimoenentrar,primeroensalir).Paraagregaruntemalacimadelapila,useappend().Pararetiraruntemdelacimadelapila,usepop()sinunndiceexplcito.Porejemplo:

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 3/13

    >>>stack=[3,4,5]>>>stack.append(6)>>>stack.append(7)>>>stack[3,4,5,6,7]>>>stack.pop()7>>>stack[3,4,5,6]>>>stack.pop()6>>>stack.pop()5>>>stack[3,4]

    6.1.2.UsandolistascomocolasTambinesposibleusarunalistacomounacola,dondeelprimerelementoaadidoeselprimerelementoretirado(primeroenentrar,primeroensalir)sinembargo,laslistasnosoneficientesparaestepropsito.Agregarysacardelfinaldelalistaesrpido,peroinsertarosacardelcomienzodeunalistaeslento(porquetodoslosotroselementostienenqueserdesplazadosporuno).

    Paraimplementarunacola,uscollections.dequeelcualfuediseadoparaagregarysacardeambaspuntasdeformarpida.Porejemplo:

    >>>fromcollectionsimportdeque>>>queue=deque(["Eric","John","Michael"])>>>queue.append("Terry")#llegaTerry>>>queue.append("Graham")#llegaGraham>>>queue.popleft()#elprimeroenllegarahoraseva'Eric'>>>queue.popleft()#elsegundoenllegarahoraseva'John'>>>queue#elrestodelacolaenrdendellegada['Michael','Terry','Graham']

    6.1.3.ComprensindelistasLascomprensionesdelistasofrecenunamaneraconcisadecrearlistas.Sususoscomunessonparahacernuevaslistasdondecadaelementoeselresultadodealgunasoperacionesaplicadasacadamiembrodeotrasecuenciaoiterable,oparacrearunasubsecuenciadeesoselementosparasatisfacerunacondicindeterminada.

    Porejemplo,asumamosquequeremoscrearunalistadecuadrados,como:

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 4/13

    >>>cuadrados=[]>>>forxinrange(10):...cuadrados.append(x**2)...>>>cuadrados[0,1,4,9,16,25,36,49,64,81]

    Podemosobtenerelmismoresultadocon:

    cuadrados=[x**2forxinrange(10)]

    Estoesequivalentetambina squares=list(map(lambdax:x**2,range(10)))peroesmsconcisoylegible.

    Unalistadecomprensinconsistedecorchetesrodeandounaexpresinseguidadeladeclaracinfor(reference.html#for)yluegoceroomsdeclaracionesfor(reference.html#for)oif(reference.html#if).Elresultadoserunanuevalistaquesaledeevaluarlaexpresinenelcontextodelosfor(reference.html#for)oif(reference.html#if)quelesiguen.Porejemplo,estalistadecomprensincombinaloselementosdedoslistassinosoniguales:

    >>>[(x,y)forxin[1,2,3]foryin[3,1,4]ifx!=y][(1,3),(1,4),(2,3),(2,1),(2,4),(3,1),(3,4)]

    yesequivalentea:

    >>>combs=[]>>>forxin[1,2,3]:...foryin[3,1,4]:...ifx!=y:...combs.append((x,y))...>>>combs[(1,3),(1,4),(2,3),(2,1),(2,4),(3,1),(3,4)]

    Notcomoelordendelosfor(reference.html#for)yif(reference.html#if)eselmismoenambospedacitosdecdigo.

    Silaexpresinesunatupla(comoel (x,y)enelejemploanterior),debeestarentreparntesis.

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 5/13

    >>>vec=[4,2,0,2,4]>>>#crearunanuevalistaconlosvaloresduplicados>>>[x*2forxinvec][8,4,0,4,8]>>>#filtrarlalistaparaexcluirnmerosnegativos>>>[xforxinvecifx>=0][0,2,4]>>>#aplicaunafuncinatodosloselementos>>>[abs(x)forxinvec][4,2,0,2,4]>>>#llamaunmtodoacadaelemento>>>frutafresca=['banana','moradeLogan','maracuya']>>>[arma.strip()forarmainfrutafresca]['banana','moradeLogan','maracuya']>>>#creaunalistadetuplasdedoscomo(nmero,cuadrado)>>>[(x,x**2)forxinrange(6)][(0,0),(1,1),(2,4),(3,9),(4,16),(5,25)]>>>#latupladebeestarentreparntesis,sinoesunerror>>>[x,x**2forxinrange(6)]Traceback(mostrecentcalllast):...[x,x**2forxinrange(6)]^SyntaxError:invalidsyntax>>>#aplanarunalistausandocomprensindelistascondos'for'>>>vec=[[1,2,3],[4,5,6],[7,8,9]]>>>[numforeleminvecfornuminelem][1,2,3,4,5,6,7,8,9]

    Lascomprensionesdelistaspuedencontenerexpresionescomplejasyfuncionesanidadas:

    >>>frommathimportpi>>>[str(round(pi,i))foriinrange(1,6)]['3.1','3.14','3.142','3.1416','3.14159']

    6.1.4.ListasporcomprensinanidadasLaexpresininicialdeunacomprensindelistaspuedesercualquierexpresinarbitraria,incluyendootracomprensindelistas.

    Considerelsiguienteejemplodeunamatrizde3x4implementadacomounalistadetreslistasdelargo4:

    >>>matriz=[...[1,2,3,4],...[5,6,7,8],...[9,10,11,12],...]

    Lasiguientecomprensindelistatranspondrlasfilasycolumnas:

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 6/13

    >>>[[fila[i]forfilainmatriz]foriinrange(4)][[1,5,9],[2,6,10],[3,7,11],[4,8,12]]

    Comovimosenlaseccinanterior,lalistadecomprensinanidadaseevaluaenelcontextodelfor(reference.html#for)quelosigue,porloqueesteejemploequivalea:

    >>>transpuesta=[]>>>foriinrange(4):...transpuesta.append([fila[i]forfilainmatriz])...>>>transpuesta[[1,5,9],[2,6,10],[3,7,11],[4,8,12]]

    elcual,alavez,eslomismoque:

    >>>transpuesta=[]>>>foriinrange(4):...#lassiguientes3lineashacenlacomprensindelistasanidada...fila_transpuesta=[]...forfilainmatriz:...fila_transpuesta.append(fila[i])...transpuesta.append(fila_transpuesta)...>>>transpuesta[[1,5,9],[2,6,10],[3,7,11],[4,8,12]]

    Enelmundoreal,deberaspreferirfuncionespredefinidasadeclaracionesconflujocomplejo.Lafuncinzip()haraunbuentrabajoparaestecasodeuso:

    >>>list(zip(*matriz))[(1,5,9),(2,6,10),(3,7,11),(4,8,12)]

    VerDesempaquetandounalistadeargumentos(controlflow.html#tutunpackingarguments)paradetallesenelasteriscodeestalnea.

    6.2.Lainstruccindel(reference.html#del)Hayunamaneradequitaruntemdeunalistadadosundiceenlugardesuvalor:lainstruccindel(reference.html#del).Estaesdiferentedelmtodopop(),elcualdevuelveunvalor.Lainstruccindel(reference.html#del)tambinpuedeusarseparaquitarseccionesdeunalistaovaciarlalistacompleta(loquehacamosantesasignandounalistavacaalaseccin).Porejemplo:

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 7/13

    >>>a=[1,1,66.25,333,333,1234.5]>>>dela[0]>>>a[1,66.25,333,333,1234.5]>>>dela[2:4]>>>a[1,66.25,1234.5]>>>dela[:]>>>a[]

    del(reference.html#del)puedeusarsetambinparaeliminarvariables:

    >>>dela

    Hacerreferenciaalnombre adeaquenmsesunerror(almenoshastaqueseleasigneotrovalor).Veremosotrosusosparadel(reference.html#del)msadelante.

    6.3.TuplasysecuenciasVimosquelaslistasycadenastienenpropiedadesencomn,comoelindizadoylasoperacionesdeseccionado.Estassondosejemplosdedatosdetiposecuencia(verTiposintegrados(reference.html#typesseq)).ComoPythonesunlenguajeenevolucin,otrosdatosdetiposecuenciapuedenagregarse.Existeotrodatodetiposecuenciaestndar:latupla.

    Unatuplaconsistedeunnmerodevaloresseparadosporcomas,porejemplo:

    >>>t=12345,54321,'hola!'>>>t[0]12345>>>t(12345,54321,'hola!')>>>#Lastuplaspuedenanidarse:...u=t,(1,2,3,4,5)>>>u((12345,54321,'hola!'),(1,2,3,4,5))>>>#Lastuplassoninmutables:...t[0]=88888Traceback(mostrecentcalllast):File"",line1,inTypeError:'tuple'objectdoesnotsupportitemassignment>>>#peropuedencontenerobjetosmutables:...v=([1,2,3],[3,2,1])>>>v([1,2,3],[3,2,1])

    Comopuedesver,enlasalidalastuplassiempreseencierranentreparntesis,paraquelastuplasanidadaspuedaninterpretarsecorrectamentepuedeningresarseconosinparntesis,aunqueamenudolosparntesissonnecesariosdetodasformas(silatuplaespartedeunaexpresinmsgrande).Noesposibleasignaralostemsindividualesdeunatupla,perosinembargossepuedecreartuplasquecontenganobjetosmutables,comolaslistas.

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 8/13

    Apesardequelastuplaspuedanparecersealaslistas,frecuentementeseutilizanendistintassituacionesyparadistintospropsitos.Lastuplassoninmutablesynormalmentecontienenunasecuenciaheterogneadeelementosquesonaccedidosaldesempaquetar(vermsadelanteenestaseccin)oindizar(oinclusoaccederporatributoenelcasodelasnamedtuples).Laslistassonmutables,ysuselementossonnormalmentehomogneosyseaccedeniterandoalalista.

    Unproblemaparticulareslaconstruccindetuplasquecontengan0o1tem:lasintaxispresentaalgunaspeculiaridadesparaestoscasos.Lastuplasvacasseconstruyenmedianteunpardeparntesisvacounatuplaconuntemseconstruyeponiendounacomaacontinuacindelvalor(noalcanzaconencerrarunnicovalorentreparntesis).Feo,peroefectivo.Porejemplo:

    >>>vacia=()>>>singleton='hola',#>>len(vacia)0>>>len(singleton)1>>>singleton('hola',)

    Ladeclaracin t=12345,54321,'hola!'esunejemplodeempaquetadodetuplas:losvalores12345, 54321y 'hola!'seempaquetanjuntosenunatupla.

    Laoperacininversatambinesposible:

    >>>x,y,z=t

    Estosellama,apropiadamente,desempaquetadodesecuencias,yfuncionaparacualquiersecuenciaenelladoderechodeligual.Eldesempaquetadodesecuenciasrequierequelacantidaddevariablesalaizquierdadelsignoigualseaeltamaodelasecuencia.Notquelaasignacinmltipleesenrealidadslounacombinacindeempaquetadodetuplasydesempaquetadodesecuencias.

    6.4.ConjuntosPythontambinincluyeuntipodedatoparaconjuntos.Unconjuntoesunacoleccinnoordenadaysinelementosrepetidos.Losusosbsicosdestosincluyenverificacindepertenenciayeliminacindeentradasduplicadas.Losconjuntostambinsoportanoperacionesmatemticascomolaunin,interseccin,diferencia,ydiferenciasimtrica.

    Lasllavesolafuncinset()puedenusarseparacrearconjuntos.Notqueparacrearunconjuntovacotensqueusar set(),no {}estoltimocreaundiccionariovaco,unaestructuradedatosquediscutiremosenlaseccinsiguiente.

    Unapequeademostracin:

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 9/13

    >>>canasta={'manzana','naranja','manzana','pera','naranja','banana'}>>>printfruta#muestraqueseremovieronlosduplicados{'pera','manzana','banana','naranja'}>>>'naranja'incanasta#verificacindepertenenciarpidaTrue>>>'yerba'incanastaFalse

    >>>#veamoslasoperacionesparalasletrasnicasdedospalabras...>>>a=set('abracadabra')>>>b=set('alacazam')>>>a#letrasnicasena{a','r','b','c','d'}>>>ab#letrasenaperonoenb{'r','b','d'}>>>a|b#letrasenaoenb{'a','c','b','d','m','l','r','z'}>>>a&b#letrasenayenb{'a','c'}>>>a^b#letrasenaobperonoenambos{'b','d','m','l','r','z'}

    Deformasimilaralascomprensionesdelistas,esttambinsoportadalacomprensindeconjuntos:

    >>>a={xforxin'abracadabra'ifxnotin'abc'}>>>a{'r','d'}

    6.5.DiccionariosOtrotipodedatotilincludoenPythoneseldiccionario(verTiposintegrados(reference.html#typesmapping)).Losdiccionariosseencuentranavecesenotroslenguajescomomemoriasasociativasoarreglosasociativos.Adiferenciadelassecuencias,queseindexanmedianteunrangonumrico,losdiccionariosseindexanconclaves,quepuedensercualquiertipoinmutablelascadenasynmerossiemprepuedenserclaves.Lastuplaspuedenusarsecomoclavessisolamentecontienencadenas,nmerosotuplassiunatuplacontienecualquierobjetomutabledirectaoindirectamente,nopuedeusarsecomoclave.Nopodsusarlistascomoclaves,yaquelaslistaspuedenmodificarseusandoasignacinporndice,asignacinporseccin,omtodoscomoappend()yextend().

    Lomejorespensarenundiccionariocomounconjuntonoordenadodeparesclave:valor,conelrequerimientodequelasclavesseannicas(dentrodeundiccionarioenparticular).Unpardellavescreanundiccionariovaco: {}.Colocarunalistadeparesclave:valorseparadosporcomasentrelasllavesaadeparesclave:valorinicialesaldiccionarioestatambineslaformaenquelosdiccionariossepresentanenlasalida.

    Lasoperacionesprincipalessobreundiccionariosonguardarunvalorconunaclaveyextraeresevalordadalaclave.Tambinesposibleborrarunparclave:valorcon del.Siussunaclavequeyaestenusoparaguardarunvalor,elvalorqueestabaasociadoconesaclavesepierde.Esunerrorextraerunvalorusandounaclavenoexistente.

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 10/13

    Hacer list(d.keys())enundiccionariodevuelveunalistadetodaslasclavesusadaseneldiccionario,enunordenarbitrario(silasquersordenadas,usencambio sorted(d.keys()).[2]

    Paracontrolarsiunaclaveesteneldiccionario,uselin(reference.html#in).

    Unpequeoejemplodeusodeundiccionario:

    >>>tel={'jack':4098,'sape':4139}>>>tel['guido']=4127>>>tel{'sape':4139,'jack':4098,'guido':4127}>>>tel['jack']4098>>>deltel['sape']>>>tel['irv']=4127>>>tel{'jack':4098,'irv':4127,'guido':4127}>>>list(tel.keys())['irv','guido','jack']>>>sorted(tel.keys())['guido','irv','jack']>>>'guido'intelTrue>>>'jack'notintelFalse

    Elconstructordict()creaundiccionariodirectamentedesdesecuenciasdeparesclavevalor:

    >>>dict([('sape',4139),('guido',4127),('jack',4098)]){'sape':4139,'jack':4098,'guido':4127}

    Adems,lascomprensionesdediccionariossepuedenusarparacreardiccionariosdesdeexpresionesarbitrariasdeclaveyvalor:

    >>>{x:x**2forxin(2,4,6)}{2:4,4:16,6:36}

    Cuandolasclavessoncadenassimples,avecesresultamsfcilespecificarlosparesusandoargumentosporpalabraclave:

    >>>dict(sape=4139,guido=4127,jack=4098){'sape':4139,'jack':4098,'guido':4127}

    6.6.TcnicasdeiteracinCuandoiteramossobrediccionarios,sepuedenobteneralmismotiempolaclaveysuvalorcorrespondienteusandoelmtodoitems().

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 11/13

    >>>caballeros={'gallahad':'elpuro','robin':'elvaliente'}>>>fork,vincaballeros.items():...print(k,v)...gallahadelpurorobinelvaliente

    Cuandoseiterasobreunasecuencia,sepuedeobtenerelndicedeposicinjuntoasuvalorcorrespondienteusandolafuncinenumerate().

    >>>fori,vinenumerate(['ta','te','ti']):...print(i,v)...0ta1te2ti

    Paraiterarsobredosomssecuenciasalmismotiempo,losvalorespuedenemparejarseconlafuncinzip().

    >>>preguntas=['nombre','objetivo','colorfavorito']>>>respuestas=['lancelot','elsantogrial','azul']>>>forp,rinzip(preguntas,respuestas):...print('Cualestu{0}?{1}.'.format(p,r))...Cualestunombre?lancelot.Cualestuobjetivo?elsantogrial.Cualestucolorfavorito?azul.

    Paraiterarsobreunasecuenciaenordeninverso,seespecificaprimerolasecuenciaalderechoyluegosellamaalafuncinreversed().

    >>>foriinreversed(range(1,10,2)):...print(i)...97531

    Paraiterarsobreunasecuenciaordenada,seutilizalafuncinsorted()lacualdevuelveunanuevalistaordenadadejandoalaoriginalintacta.

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 12/13

    >>>canasta=['manzana','naranja','manzana','pera','naranja','banana']>>>forfinsorted(set(canasta)):...print(f)...bananamanzananaranjapera

    Paracambiarunasecuenciasobrelaqueestsiterandomientrasestsadentrodelciclo(porejemploparaduplicaralgunostems),serecomiendaqueprimerahagasunacopia.Ciclarsobreunasecuencianohaceimplcitamenteunacopia.Lanotacinderebanadasesespecialmenteconvenienteparaesto:

    >>>palabras=['gato','ventana','defenestrar']>>>forpinpalabras[:]:#ciclarsobreunacopiadelalistaentera...iflen(p)>6:...palabras.insert(0,p)...>>>palabras['defenestrar','gato','ventana','defenestrar']

    6.7.MsacercadecondicionesLascondicionesusadasenlasinstrucciones whilee ifpuedencontenercualquieroperador,noslocomparaciones.

    Losoperadoresdecomparacin iny notinverificansiunvalorest(onoest)enunasecuencia.Losoperadores ise isnotcomparansidosobjetossonrealmenteelmismoobjetoestoessignificativosloparaobjetosmutablescomolaslistas.Todoslosoperadoresdecomparacintienenlamismaprioridad,lacualesmenorqueladetodoslosoperadoresnumricos.

    Lascomparacionespuedenencadenarse.Porejemplo, a

  • 19/5/2015 6. Estructuras de datos documentacin de Tutorial de Python - 3.4.2

    http://docs.python.org.ar/tutorial/3/datastructures.html 13/13

    BacktotopCopyright2014,PythonSoftwareFoundation.CreatedusingSphinx(http://sphinx.pocoo.org/)1.2.2.

    >>>cadena1,cadena2,cadena3='','Trondheim','PasoHammer'>>>non_nulo=cadena1orcadena2orcadena3>>>non_nulo'Trondheim'

    NotqueenPython,adiferenciadeC,laasignacinnopuedeocurrirdentrodeexpresiones.LosprogramadoresdeCpuedenrenegarporesto,peroesalgoqueevitauntipodeproblemacomnencontradoenprogramasenC:escribir =enunaexpresincuandoloquesequiereescribires ==.

    6.8.ComparandosecuenciasyotrostiposLassecuenciaspuedencompararseconotrosobjetosdelmismotipodesecuencia.Lacomparacinusaordenlexicogrfico:primerosecomparanlosdosprimerostems,sisondiferentesestoyadeterminaelresultadodelacomparacinsisoniguales,secomparanlossiguientesdostems,yassucesivamentehastallegaralfinaldealgunadelassecuencias.Sidostemsacompararsonambossecuenciasdelmismotipo,lacomparacinlexicogrficaesrecursiva.Sitodoslostemsdedossecuenciasresultaniguales,seconsideraquelassecuenciassoniguales.

    Siunasecuenciaesunasubsecuenciainicialdelaotra,lasecuenciamscortaeslamenor.ElordenlexicogrficoparacadenasdecaracteresutilizaelordendecdigosUnicodeparacaracteresindividuales.Algunosejemplosdecomparacionesentresecuenciasdelmismotipo:

    (1,2,3)