Liste
Contents
Operazioni sulle liste
+, *
1 >>> [1, 2, 3, 4] + [5, 6] + [7]
2 [1, 2, 3, 4, 5, 6, 7]
3 >>> [3, 2, 'abc'] * 2
4 [3, 2, 'abc', 3, 2, 'abc']
5 >>> [5] * 2 + [3]
6 [5, 5, 3]
==, !=, <, >
1 >>> [1, 2, 3] == [1, 2, 3]
2 True
3 >>> [1, 2, 3] == [1, 2, 4]
4 False
5 >>> [1, 2, 3] != [1, 2, 4]
6 True
7 >>> [1, 2, 3] == [1, 2, '3']
8 False
9 >>> [1, 2, 3] < [1, 2, 4]
10 True
11 >>> [1, 2, 3] < [9, 2]
12 True
13 >>> [1, 2, 3] < [1, 2, 3, 1]
14 True
15 >>> [1, 2, 3] < [1, 2, 2, 1]
16 False
Metodi
append, extend
1 >>> l = [1,2,3,4]
2 >>> l.append(5) #aggiunge un oggetto alla lista
3 >>> l
4 [1, 2, 3, 4, 5]
5 >>> l.append([6,7]) #aggiunge una lista come ultimo elemento di l
6 >>> l
7 [1, 2, 3, 4, 5, [6, 7]]
8 >>> l=[1, 2]
9 >>> l.extend([3,4]) #aggiunge gli elementi di un 'iterable' alla lista
10 >>> l.extend((5,6))
11 >>> l.extend('xyz')
12 >>> l
13 [1, 2, 3, 4, 5, 6, 'x', 'y', 'z']
count
1 >>> ['a', 'b', 'a', 'c', 'a'].count('a')
2 3
3 >>> [5, 8, '5', [5,8], 5].count(5)
4 2
index
1 >>> ['a', 'b', 'a', 'd', 'a', 'e'].index('a')
2 0
3 >>> ['a', 'b', 'a', 'd', 'a', 'e'].index('a', 1) # a partire dalla posizione 1
4 2
5 >>> ['a', 'b', 'a', 'd', 'a', 'e'].index('e', 0, 3) # dalla posizione 0 alla 3
6 ValueError: list.index(x): x not in list # 'e' non è nel range specificato
insert
1 >>> l = ['b', 'c']
2 >>> l.insert(0, 'a') #inserisce 'a' alla posizione 0
3 >>> l
4 ['a', 'b', 'c']
pop
1 >>> l = ['a', 'b', 'c', 'd', 'e']
2 >>> l.pop() # estrae l'ultimo elemento dalla lista
3 'e'
4 >>> l
5 ['a', 'b', 'c', 'd']
6 >>> l.pop(2) # estrae l'elemento in posizione 2
7 'c'
8 >>> l
9 ['a', 'b', 'd']
remove
1 >>> l = ['a', 'b', 'c', 'b', 'a']
2 >>> l.remove('b')
3 >>> l
4 ['a', 'c', 'b', 'a']
reverse
1 >>> l = [1, 2, 3, 4, 5]
2 >>> l.reverse()
3 >>> l
4 [5, 4, 3, 2, 1]
sort
1 >>> l = [2, 5, 3, 4, 1]
2 >>> l.sort()
3 >>> l
4 [1, 2, 3, 4, 5]
5 >>> l = [2, 'a', 'B', 1, 'A', 'b']
6 >>> l.sort()
7 >>> l
8 [1, 2, 'A', 'B', 'a', 'b']
9
10 # se proviamo a ordinare una lista di file il risultato potrebbe
11 # non essere quello desiderato (img10 e img12 sono prima di img5 e img7)
12 >>> l = ['img7.jpg', 'img10.jpg', 'img1.jpg', 'img12.jpg', 'img5.jpg']
13 >>> l.sort()
14 >>> l
15 ['img1.jpg', 'img10.jpg', 'img12.jpg', 'img5.jpg', 'img7.jpg']
16
17 # si possono scrivere funzioni personalizzate per confrontare gli elementi
18 # in questo caso la funzione nsort confronta solo i numeri dell'immagine
19 # dopo averli estratti dal nome del file usando una regex
20 >>> l = ['img7.jpg', 'img10.jpg', 'img1.jpg', 'img12.jpg', 'img5.jpg']
21 >>> import re
22 >>> def nsort(x, y):
23 ... xn = int(re.search('(\d+)', x).group(1))
24 ... yn = int(re.search('(\d+)', y).group(1))
25 ... return cmp(xn, yn)
26 ...
27 >>> l.sort(nsort)
28 >>> l
29 ['img1.jpg', 'img5.jpg', 'img7.jpg', 'img10.jpg', 'img12.jpg']
30
31 # è possibile passare una funzione che viene applicata a tutte
32 # le chiavi prima di ordinarle, in questo caso int()
33 >>> l = ['7', '10', '15', '1', '12', '5', '3']
34 >>> l.sort()
35 >>> l
36 ['1', '10', '12', '15', '3', '5', '7']
37 >>> l = ['7', '10', '15', '1', '12', '5', '3']
38 >>> l.sort(key=int)
39 >>> l
40 ['1', '3', '5', '7', '10', '12', '15']
41
42 # per indicare l'ordine si può usare il parametro reverse
43 >>> l = [1, 2, 3, 4]
44 >>> l.sort(reverse=True)
45 >>> l
46 [4, 3, 2, 1]
47
48 # anche in combinazione con gli altri
49 >>> l = ['7', '10', '15', '1', '12', '5', '3']
50 >>> l.sort(key=int, reverse=True)
51 >>> l
52 ['15', '12', '10', '7', '5', '3', '1']
Collegamenti esterni