







Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Documento sobre listas de listas en Python
Tipo: Apuntes
1 / 13
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!








def fila(A, i): """ Donada una matriu A, retorna la seva fila i.
A = [[1, 2, 3, 4, 5],[6, 7, 8, 9, 0], [1, 2, 3, 4, 1], [6, 7, 8, 9, 1], [1, 2, 3, 4, 2]] fila(A, 3) [6, 7, 8, 9, 1] """ return A[i] def columna(A, j): """ Donada una matriu A, retorna la seva columna j. A = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 0], [1, 2, 3, 4, 1], [6, 7, 8, 9, 1], [1, 2, 3, 4, 2]] columna(A, 2) [3, 8, 3, 8, 3] """ column = [] for i in range(len(A)): column += [A[i][j]] return column
def diagonal_principal(A): """ Donada una matriu quadrada A,retorna la seva diagonal principal.
A = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 0], [1, 2, 3, 4, 1], [6, 7, 8, 9, 1], [1, 2, 3, 4, 2]] diagonal_principal(A) [1, 7, 3, 9, 2] """ diag = [] for i in range(len(A)): for j in range(len(A)): if i==j: diag += [A[i][j]] return diag ''' diag = [] for i in range(len(A)): diag += [A[i][i]] return diag def diagonal_secundaria(A): """ Donada una matriu quadrada A, retorna la seva diagonal secundaria. A = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 0], [1, 2, 3, 4, 1], [6, 7, 8, 9, 1], [1, 2, 3, 4, 2]] diagonal_secundaria(A) [5, 9, 3, 7, 1] """ ''' diag = [] for i in range(len(A)): for j in range(len(A)): if j == len(A)- 1 - i: diag += [A[i][j]] return diag ''' diag = [] for i in range(len(A)): diag += [A[i][len(A)- 1 - i]] return diag
Suposem que l_alumnes es una llista de registres tal que cada registre conte les dades d'un alumne de 1r de l'escola (nom, any de neixement,adreça) i les seves notes del curs. Per exemple: l_alumnes = [['Joana', 2003, 'Carrer Major, 27', 7.6, 0.3, 2.8, 9.0], ... ['Michael', 2003, 'Ronda del Mig, 245', 8.7, 0.1], ... ['Laia', 2003, 'Passeig de la Platja, 3', 1.5, 9.8, 3.7, 1.6, 1.4, 3.8, 6.9, 5.4, 7.6, 8.0], ... ['Fatima', 2003, 'Carrer de Baixada, 721', 2.8], ... ['Samir', 2003, 'Carrer Pujades, 94 bis', 6.9, 3.6, 1.8, 2.0, 7.0]] ''' def tipus_via (adreça): ''' Donat un string que representa una adreça, retorna el tipus de via
tipus_via ('Carrer Major, 27') 'Carrer' ''' i = 1 diagonal_principal(A) [1, 7, 3, 9, 2] """ diag = [] for i in range(len(A)): for j in range(len(A)): if i==j: diag += [A[i][j]] return diag ''' diag = [] for i in range(len(A)): diag += [A[i][i]] return diag def diagonal_secundaria(A): """ Donada una matriu quadrada A, retorna la seva diagonal secundaria. >>> A = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 0], [1, 2, 3, 4, 1], [6, 7, 8, 9, 1], [1, 2, 3, 4, 2]] >>> diagonal_secundaria(A) [5, 9, 3, 7, 1] """ ''' diag = [] for i in range(len(A)): for j in range(len(A)): if j == len(A)- 1 - i: diag += [A[i][j]] return diag ''' diag = [] for i in range(len(A)): diag += [A[i][len(A)- 1 - i]] return diag Suposem que l_alumnes es una llista de registres tal que cada registre conte les dades d'un alumne de 1r de l'escola (nom, any de neixement,adreça) i les seves notes del curs. Per exemple: l_alumnes = [['Joana', 2003, 'Carrer Major, 27', 7.6, 0.3, 2.8, 9.0], ... ['Michael', 2003, 'Ronda del Mig, 245', 8.7, 0.1], ... ['Laia', 2003, 'Passeig de la Platja, 3', 1.5, 9.8, 3.7, 1.6, 1.4, 3.8, 6.9, 5.4, 7.6, 8.0], ... ['Fatima', 2003, 'Carrer de Baixada, 721', 2.8], ... ['Samir', 2003, 'Carrer Pujades, 94 bis', 6.9, 3.6, 1.8, 2.0, 7.0]] ''' def tipus_via (adreça): ''' Donat un string que representa una adreça, retorna el tipus de via >>> tipus_via ('Carrer Major, 27') 'Carrer' ''' i = 1 while adreça[i] != ' ': i += 1 return adreça[:i] def tipus_vies(l_alumnes): """ Donada una llista l_alumnes, retorna la llista amb tots els tipus de via diferents (sense repetir) a on viuen els alumnes tipus_vies(l_alumnes) ['Carrer', 'Ronda', 'Passeig'] """ l_vies = [] for alumne in l_alumnes: s = tipus_via(alumne[2]) if s not in l_vies: l_vies += [s] return l_vies def nota_mitjana(notes): """
diagonal_secundaria(A) [5, 9, 3, 7, 1] """ ''' diag = [] for i in range(len(A)): for j in range(len(A)): if j == len(A)- 1 - i: diag += [A[i][j]] return diag ''' diag = [] for i in range(len(A)): diag += [A[i][len(A)- 1 - i]] return diag Suposem que l_alumnes es una llista de registres tal que cada registre conte les dades d'un alumne de 1r de l'escola (nom, any de neixement,adreça) i les seves notes del curs. Per exemple: l_alumnes = [['Joana', 2003, 'Carrer Major, 27', 7.6, 0.3, 2.8, 9.0], ... ['Michael', 2003, 'Ronda del Mig, 245', 8.7, 0.1], ... ['Laia', 2003, 'Passeig de la Platja, 3', 1.5, 9.8, 3.7, 1.6, 1.4, 3.8, 6.9, 5.4, 7.6, 8.0], ... ['Fatima', 2003, 'Carrer de Baixada, 721', 2.8], ... ['Samir', 2003, 'Carrer Pujades, 94 bis', 6.9, 3.6, 1.8, 2.0, 7.0]] ''' def tipus_via (adreça): ''' Donat un string que representa una adreça, retorna el tipus de via >>> tipus_via ('Carrer Major, 27') 'Carrer' ''' i = 1 while adreça[i] != ' ': i += 1 return adreça[:i] def tipus_vies(l_alumnes): """ Donada una llista l_alumnes, retorna la llista amb tots els tipus de via diferents (sense repetir) a on viuen els alumnes >>> tipus_vies(l_alumnes) ['Carrer', 'Ronda', 'Passeig'] """ l_vies = [] for alumne in l_alumnes: s = tipus_via(alumne[2]) if s not in l_vies: l_vies += [s] return l_vies def nota_mitjana(notes): """ Donada una llista de reals entre 0.0 i 10.0, retorna la mitjana amb un decimal. nota_mitjana([7.6, 0.3, 2.8, 9.0])
""" return round(sum(notes)/len(notes),1)
def notes(l_alumnes): """ Donada un llista de resistres l_alumnes, retorna una llista de registres tal que cada registre conte el nom d'un alumne i la seva nota mitjana.
notes(l_alumnes) [['Joana', 4.9], ['Michael', 4.4], ['Laia', 5.0], ['Fatima', 2.8], ['Samir', 4.3]] """ l_notes = [] for alumne in l_alumnes: l_notes.append([alumne[0], nota_mitjana(alumne[3:])]) #l_notes += [[alumne[0], nota_mitjana(alumne[3:])]] return l_notes if name == 'main': l_alumnes = [['Joana', 2003, 'Carrer Major, 27', 7.6, 0.3, 2.8, 9.0], ['Michael', 2003, 'Ronda del Mig, 245', 8.7, 0.1], ['Laia', 2003, 'Passeig de la Platja, 3', 1.5, 9.8, 3.7, 1.6, 1.4, 3.8, 6.9, 5.4, 7.6, 8.0], ['Fatima', 2003, 'Carrer de Baixada, 721', 2.8], ['Samir', 2001, 'Carrer Pujades, 94 bis', 6.9, 3.6, 1.8, 2.0, 7.0]] import doctest print(doctest.testmod(verbose=True))