En ce qui concerne les types de données complexes. On va retenir les listes, les tuples et les dictionnaires.
Les listes sont une collection d'éléments. Il est possible d'accéder à ces éléments, d'en ajouter et d'en supprimer. Un élément peut être de n'importe quel type supporté par Python. De plus, en Python, une liste est de type liste, c'est-à-dire qu'elle peut contenir des éléments de types différents.
Les accès à une liste peuvent se faire selon un indice ou une plage. L'exemple ci-dessous montre la simplicité de la manipulation des listes en Python.
1. >>maListe = ['java', 'python', 42]
2. >>maListe[1]
3. 'python'
4. >>maListe.append(['asp', 'visual basic'])
5. >>maListe[1:3]
6. ['python', 42]
7. >>maListe[1:]
8. ['python', 42, ['asp', 'visual basic']]
9. >>maListe[-2]
10. 42
11. >>maListe [1:3] = ['perl']
12. >>maListe
13. ['java', 'perl', ['asp', 'visual basic']]
Dans cet exemple, on crée une liste, on affiche l'élément en indice 1, on ajoute un élément en fin de liste, on liste les éléments entre les indices 1 et 3, puis les éléments de l'indice 1 à la fin, on utilise un indice négatif pour accéder à la liste à l'envers et on illustre le remplacement de plusieurs éléments.
Les tuples constituent un type particulier assimilable à une liste non modifiable. Les opérations pouvant être effectuées sont ainsi les mêmes que pour les listes excepté les opérations de modification.
Les dictionnaires sont des collections de couples clef:valeur. La clef doit être un élément de type non modifiable, comme une valeur numérique, une chaîne de caractères, voire même un tuple si celui-ci n'est composé que d'éléments non modifiables (pas de liste par exemple).
1. >>monDico={'sun':'java', 'microsoft':['asp', 'visual basic']}
2. >>monDico['sun']
3. 'java'