Méthodes d'initialisation courantes
Initialisation par compréhension de liste
Compréhension de liste de base
## Generate a list of squares
squares = [x**2 for x in range(5)]
## Result: [0, 1, 4, 9, 16]
## Conditional list comprehension
even_numbers = [x for x in range(10) if x % 2 == 0]
## Result: [0, 2, 4, 6, 8]
Initialisation avec la fonction range()
## Create a list of consecutive numbers
numbers = list(range(5)) ## [0, 1, 2, 3, 4]
numbers = list(range(1, 6)) ## [1, 2, 3, 4, 5]
numbers = list(range(0, 10, 2)) ## [0, 2, 4, 6, 8]
Initialisation de liste imbriquée
## 2D list initialization
matrix = [[0 for _ in range(3)] for _ in range(3)]
## Result: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
## Complex nested initialization
complex_list = [[i*j for j in range(3)] for i in range(3)]
## Result: [[0, 0, 0], [0, 1, 2], [0, 2, 4]]
Comparaison des méthodes d'initialisation
| Méthode |
Syntaxe |
Avantages |
Inconvénients |
| Compréhension de liste |
[expr for item in iterable] |
Concise, lisible |
Peut être complexe pour les structures imbriquées |
range() |
list(range(start, stop, step)) |
Séquences numériques simples |
Limité aux séquences numériques |
| Multiplication |
[value] * n |
Initialisation uniforme rapide |
Copie superficielle pour les objets mutables |
Techniques d'initialisation avancées
import itertools
## Repeat a value
repeated_list = list(itertools.repeat('default', 3))
## Result: ['default', 'default', 'default']
Flux d'initialisation
graph TD
A[Start List Initialization] --> B{Choose Method}
B --> |Simple Sequence| C[Use range()]
B --> |Uniform Values| D[Use Multiplication]
B --> |Complex Logic| E[Use List Comprehension]
B --> |Repeated Elements| F[Use itertools]
Astuces pratiques LabEx
Lorsque vous pratiquez l'initialisation de listes, expérimentez différentes méthodes pour comprendre leurs subtilités. LabEx propose un environnement interactif pour explorer ces techniques de manière pratique.
- Les compréhensions de liste sont généralement plus rapides que les boucles traditionnelles
- Pour les grandes listes, envisagez les expressions génératrices pour économiser de la mémoire
- Choisissez la méthode la plus lisible et efficace pour votre cas d'utilisation spécifique