Llistes i diccionaris

Llistes

Creació:

nombres = ['zero', 2.0, 1, '3', 4]
# Resultat ['zero', 2.0, 1, '3', 4]

list(range(4))
# Resultat [0, 1, 2, 3]

list('Python') 
# Resultat ['P', 'y', 't', 'h', 'o', 'n']

llista_buida = []

Accés a un element:

nombres = ['zero', 2.0, 1, '3', 4]
print(nombres[1])
# Resultat 2.0

Iteració:

x = [-3, 8.5, 5, 3.5]
suma = 0
for valor in x:
    suma = suma + valor
print(suma)
## Resultat: 14.0

Calcula el nombre d’elements de la llista:

x = [-3, 8.5, 5, 3.5]
n = len(x)
print(n)
# Resultat 4

Sumar:

x = [-3, 8.5, 5, 3.5]
suma = sum(x)
print(suma)
# Resultat 14.0

Ordenar:

x = [-3, 8.5, 5, 3.5]
y = sorted(x)
print(y)
# El resultat és: [-3, 3.5, 5, 8.5]

Alternativament, compte que l’ordre sort modifica la llista i no es pot recuperar l’ordre inicial:

x = [-3, 8.5, 5, 3.5]
x.sort()
print(x)
# El resultat és: [-3, 3.5, 5, 8.5]

Dividir cadenes per aconseguir una llista:

entrada1 = "Matemàtiques Castellà Català Informàtica"
materies = entrada1.split() 
print(materies)
# Resultat ['Matemàtiques', 'Castellà', 'Català', 'Informàtica']

De cadena de text a nombres:

entrada2 = "2, 4, -3, 4.3, 9.1"
valors_text = entrada2.split(',')
valors_num = list(map(float, valors_text))
print(valors_num)
# Resultat [2, 4, -3, 4.3, 9.1]

Diccionaris

Definició

notes = {'mates': 6.4,
         'catala': 5.1,
         'informatica': 10.0
         }

Iteració

suma = 0
for clau in notes:
    suma = suma + notes[clau]
print(suma)
# 21.5

Ordenar

notes_ordenades = dict(sorted(notes.items()))
print(notes_ordenades)
# {'catala': 5.1, 'informatica': 10.0, 'mates': 6.4}
notes_ordenades = dict(sorted(notes.items(),
                              key=lambda x: x[1])
                              )
print(notes_ordenades)
#{'catala': 5.1, 'mates': 6.4, 'informatica': 10.0}

Diccionari buit i afegir element

diccionari = {}
diccionari['Nom'] = 'Pere'
diccionari['Cognoms'] = 'García Ramon'
diccionari['Càrrec'] = 'Coordinadora'
print(diccionari)
# {'Nom': 'Pere', 'Cognoms': 'García Ramon', 'Càrrec': 'Coordinadora'}