# Llistes en Python - Les llistes són un tipus de dada composta que permet emmagatzemar dades de qualsevol mena. - La llista en Python són variables que emmagatzemen arrays, internament cada posició pot ser un tipus de dades diferent. ## Crear llistes Python ```python= lista = [1, 2, 3, 4] ``` - També es pot crear usant list i passant un objecte iterable. ```python= lista = list("1234") ``` - Una llista es crea amb [] separant els seus elements amb comes ,. Un gran avantatge és que poden emmagatzemar tipus de dades diferents. ```python= lista = ["Hola", 4, 3.1416, [1, 2, 3]] ``` ## Accedir i modificar llistes - Si tenim una llista amb 3 elements emmagatzemats en ella, podem accedir als mateixos usant claudàtors i un índex, que va des de 0 a n-1 sent n la grandària de la llista. ```python= lista = ["Hola", 4, 3.1416, [1, 2, 3]] print(lista[0]) #Hola print(lista[1]) #4 print(lista[2]) #3.1416 print(lista[3]) # [1, 2, 3] ``` - Es pot també accedir a l'últim element usant l'índex [-1] o al penúltim usant el [-2] i així successivament ```python= lista = ["Hola", 4, 3.1416, [1, 2, 3]] print(lista[-1]) # [1, 2, 3] ``` ## Modificar un element de la llista - Per a Modificar un element de la llista, n'hi ha prou amb assignar amb l'operador = el nou valor. ```python= lista = ["Hola", 4, 3.1416, [1, 2, 3]] lista[3]=True print(lista) #["Hola", 4, 3.1416, True] ``` ## Eliminar un element de la llista ```python= lista = ["Hola", 4, 3.1416, [1, 2, 3]] del lista[2] print(lista) #["Hola", 4, [1, 2, 3]] ``` ## Llistes niades - Les llistes niades són llistes dins d'altres llistes, fins i tot podem tenir diversos nivells. - Per a accedir als seus elements només hem d'usar [] tantes vegades com nivells de niat tinguem. ```python= x = [1, 2, 3, ['p', 'q', [5, 6, 7]]] print(x[3][0]) #p print(x[3][2][0]) #5 print(x[3][2][2]) #7 ``` ## Crear subllistes - Es poden crear subllistes més petites d'una més gran. - Per a això hem d'usar **:** entre claudàtors, indicant a l'esquerra el valor d'inici, i a la dreta el valor final que no està inclòs. - Per tant [0:2] crearà una llista amb els elements [0] i [1] de l'original. ```python= lista = [1, 2, 3, 4, 5, 6] print(lista[0:2]) #[1, 2] print(lista[2:6]) #[3, 4, 5, 6] ``` - També podem modificar múltiples valors de la llista alhora usant **:**. ```python= lista = [1, 2, 3, 4, 5, 6] lista[0:3] = [0, 0, 0] print(lista) #[0, 0, 0, 4, 5, 6] ``` ## Afegir elements a la llista - Afegir elements a la llista usant l'operador **+**: ```python= lista = [1, 2, 3, 4] lista += [5, 6] print(l) #[1, 2, 3, 4, 5, ]6 ``` - També es pot assignar una llista amb n elements a n variables. ```python= lista = [1, 2, 3] x, y, z = lista print(x, y, z) #1 2 3 ``` ## Iterar llistes - En Python és molt fàcil iterar una llista: ```python= lista = [5, 9, 10] for i in lista: print(i) #5 #9 #10 ``` - També podem mostrar l'índex de la llista, que prengui valors des de 0 fins a n-1, es pot fer de la següent manera. ```python= lista = [5, 9, 10] for i, l in enumerate(lista): print(i, l) #0 5 #1 9 #2 10 ``` - Iterar dues llistes alhora ```python= lista1 = [1, 2, 3] lista2 = ["dilluns", "dimarts", "dimecres"] for l1, l2 in zip(lista1, lista2): print(l1, l2) #1 dilluns #2 dimarts #3 dimecres ``` - Iterar les llistes usant els índexs com hem vist al principi, i fent ús de len(), que ens retorna la longitud de la llista. ```python= lista1 = [5, 9, 10] for i in range(0, len(lista)): print(lista1[i]) #5 #9 #10 ``` ## Mètodes llistes ### Afegeir elements a una llista - El mètode **append()** afegeix un element al final de la llista. ```python= lista = [1, 2] lista.append(3) print(lista) #[1, 2, 3] ``` - El mètode **extend()** permet afegir una llista a la llista inicial. ```python= lista = [1, 2] lista.extend([3, 4]) print(lista) #[1, 2, 3, 4] ``` - El mètode insert() afegeix un element en una posició o índex determinat. ```python= lista = [1, 3] lista.insert(1, 2) print(lista) #[1, 2, 3] ``` ### Eliminar un element de la llista - El mètode remove() rep com a argument un objecte i l'esborra de la llista. ```python= lista = [1, 2, 3] lista.remove(3) print(lista) #[1, 2] ``` - El mètode pop() elimina per defecte l'últim element de la llista, però si es passa com a paràmetre un índex permet esborrar elements diferents a l'últim. ```python= lista = [1, 2, 3] lista.pop() print(lista) #[1, 2] ``` ### Invertir l'ordre d'una llista - El mètode reveure's() inverteix l'ordre de la llista. ```python= lista = [1, 2, 3] lista.reverse() print(lista) #[3, 2, 1] ``` ### Ordenar elements - El mètode sort() ordena els elements de menys a major per defecte. ```python= lista= [3, 1, 2] lista.sort() print(lista) #[1, 2, 3] ``` - També permet ordenar de major a menor si es passa com a paràmetre reverse=True. ```python= lista = [3, 1, 2] lista.sort(reverse=True) print(lista) #[3, 2, 1] ``` - També permet introduir un paràmetre opcional que representa l'índex des del qual començar la cerca de l'objecte. És com si ignorés tot el que hi ha abans d'aquest índex per a la cerca, en aquest cas el 4. ```python= lista = [2, 5, 7, 1, 2, 1, 4, 5] print(lista.index(2, 4)) #4 ``` Fonts: https://ellibrodepython.com/sets-python https://entrenamiento-python-basico.readthedocs.io/es/latest/leccion3/tipo_listas.html