Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Liste
Prof. E. Clementini
Tipi composti Si sono visti i tipi semplici come
int, float, str,..Queste hanno un
solo valore in cui la variabile può
avere un solo valore (scalare)
Tipi classici: Tipi Python: mentre i tipi composti sono
– Array – Stringhe quelle variabili a cui si associano
più valori. Una stringa è una
– Record – Liste collezione di caratteri per cui può
essere vista anche come tipo
– File – Tuple composto
– Insiemi
– Dizionari
– File
– Classi
• N.B. Non confondere l’ordinamento per posizione da un ordinamento per valori crescenti o
decrescenti.
for i in range(n):
a[i]=int(input("Inserire il "+str(i+1)+" valore "))
Calcolo
Massimo
max,
posmax
v1
La somma di due vettori si effettua componenti per componenti. Anche in
questo caso si ha il diagramma di flusso generalizzato. Nel diagramma di
v2 flusso esteso ci sono 4 cicli in sequenza
v3=v1+v2
v3
print("Vettore risultato")
for i in range(n):
print (v3[i])
15/10/2021 Fondamenti di Informatica - Prof. Clementini 17
Array multidimensionali
0 1 2 3 4 5
• I più usati: array bidimensionali
0
• oppure:
a=[[0 for j in range(c)] for i in range(r)]
for i in range(r):
for j in range(c):
a[i][j]=int(input("a["+str(i)+"]["+str(j)+"]="))
Calcolo
Massimo
max,
rmax,cmax
massimo=a[0][0]
rmax=0
cmax=0
for i in range(r):
for j in range(c):
if a[i][j]>massimo:
massimo=a[i][j]
rmax=i
cmax=j
print("massimo=",massimo)
print("in posizione (",rmax,cmax,")")
c=a+b
Fare codifica…
Fare codifica…
diag=True
i=0
while i<r and diag: Il ciclo while esterno cambia il numero di righe,
j=0
while j<c and diag:
if (i!=j and a[i][j]!=0):
diag=False
j=j+1
i=i+1
if diag:
print ("La matrice inserita è diagonale")
else:
print ("La matrice inserita non è diagonale")
nome=input("nome=")
print(nome)
lunghezza=len(nome)
Una porzione di stringa s1[n:m] estrare i caratteri dalla posizione n inclusa alla
posizione m esclusa
Oppure:
for lettera in nome:
print (lettera)
operatori relazionali <, >, etc, dove per “minore” si intende “viene prima in ordine
alfabetico”:
if s1<s2: … #verifica se s1 viene prima di s2
#in ordine alfabetico
string="a, b, c, d, e"
lista=string.split(',')
print(lista) #output: ['a', ' b', ' c', ' d', ' e']
In questo caso per separare i vari componenti di utilizza ','
• La funzione join è l'inverso della split: riunisce una lista di stringhe in un'unica stringa
connettendo le parti con un separatore
– Es.
stringa_riunita=','.join(lista_pulita)
print(stringa_riunita))
#output: a,b,c,d,e
i=0
j=len(s)-1
palin=True
while i<j and palin:
if s[i]!=s[j]:
palin=False
i=i+1
j=j-1
if palin:
print (s,"è una parola palindroma")
else:
print (s,"non è una parola palindroma")
'Inter' in Squadre
lista=[1,1,2]
lista.extend([2,3])
print(lista) → [1, 1, 2, 2, 3]
lista=["kappa","beta","phi","alpha"]
lista.sort()
print(lista) → ['alpha', 'beta', 'kappa', 'phi']
𝑆 = {𝑥 2 |𝑥 ∈ 0. . 9 }
S=[x**2 for x in range(10)]
V = {1,2,4,8, … , 212 }
V=[2**i for i in range(13)]
𝑀 = {𝑥|𝑥 ∈ 𝑆 ∧ 𝑥 𝑝𝑎𝑟𝑖}
M=[x for x in S if x%2==0]
𝑀 = {𝑥|𝑥 ∈ 𝑆 ∧ 𝑥 𝑝𝑎𝑟𝑖}
>>> print(primi)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]