# Crea una función a la que le pasamos una lista de cadenas y me devuelva la más larga # si hay varias cadenas con la misma longitud, la primera # masLarga(["aa","eeeee","bbb"])->"eeeee" # en algún sitio guardaré la cadena más larga # recorrer la lista # si la cadena que estoy mirando es más larga que la que ya tengo me quedo con ella def masLarga(lista): larga = "" for cadena in lista: # Aquí está la magia if len(cadena) > len(larga): larga = cadena return larga lista = ['a', 'b', 'c', 'a'] print(lista.index('a')) # 0 print(lista.index('a', 1)) # 3 numeros = [2, 4, 6, 8, 9, 6, 9, 7, 6] try: pos = numeros.index(6) # 2 print(pos) pos = numeros.index(6, pos + 1) # 5 print(pos) pos = numeros.index(6, pos + 1) # 8 print(pos) pos = numeros.index(6, pos + 1) # Error print(pos) except: print("No encontrado") print(numeros.count(6)) copia_incorrecta = numeros copia_correcta = numeros.copy() numeros[0] = 27 print(copia_incorrecta) print(copia_correcta) copia_incorrecta[1] = 99 print(numeros) print(copia_correcta) # Cuidado con modificar las listas dentro de las funciones, porque la modificación afecta fuera # Si por lo que sea tenemos que modificar, hagamos una copia def sumar(lista): suma = 0 for i in range(len(lista)): suma += lista.pop() return suma def buscar(lista,elemento): posiciones=[] try: pos=lista.index(elemento) while True: posiciones.append(pos) pos = lista.index(elemento,pos + 1) except: return posiciones print(buscar(numeros,6)) numeros = [2, 4, 6, 8, 9, 6, 9, 7, 6] numeros.sort() # Modificamos la propia lista, que queda ordenada print(numeros) numeros.sort(reverse=True) print(numeros) numeros = [2, 4, 6, 8, 9, 6, 9, 7, 6] # Nos crea una copia ordenada de la lista y la lista original queda como estaba ordenados = sorted(numeros) print(numeros) print(ordenados) numeros.reverse() print(numeros) clase = ["Ana", "Pep", "Rosa", "Iu", "Eva"] clase.reverse() print(clase) clase = ["Ana", "Pep", "Rosa", "Iu", "Eva"] # Tengo que convertir a lista por cosillas del Python, que no devuelve una lista sino un iterador clase_vuelta = list(reversed(clase)) print(clase) print(clase_vuelta) # Aquí no hace falta convertir a lista porque el in funciona con iteradores for alumno in reversed(clase): print(alumno) # El key nos permite ordenar por funciones diferentes a las alfabéticas # En este caso, ordeno por longitud clase_orden = sorted(clase, key=len) print(clase_orden)