Itération pratique avec index
Scénarios d'indexation dans le monde réel
L'itération pratique avec index va au-delà des exemples de base, en résolvant des défis de programmation complexes avec des solutions élégantes.
Techniques de traitement de données
1. Filtrage avec des conditions d'index
def filter_by_index(data, condition):
return [item for index, item in enumerate(data) if condition(index)]
numbers = [10, 20, 30, 40, 50, 60]
even_indexed_numbers = filter_by_index(numbers, lambda idx: idx % 2 == 0)
print(even_indexed_numbers) ## Output: [10, 30, 50]
2. Traitement parallèle de listes
def sync_list_operations(list1, list2):
result = []
for index, (item1, item2) in enumerate(zip(list1, list2)):
result.append((index, item1 * item2))
return result
prices = [10, 20, 30]
quantities = [2, 3, 4]
total_values = sync_list_operations(prices, quantities)
print(total_values) ## Output: [(0, 20), (1, 60), (2, 120)]
Modèles d'itération avancés
graph TD
A[Practical Index Iteration] --> B[Filtering]
A --> C[Transformation]
A --> D[Synchronization]
B --> E[Conditional Selection]
C --> F[Index-Based Mapping]
D --> G[Parallel Processing]
3. Manipulation dynamique d'index
Technique |
Description |
Cas d'utilisation |
Fenêtre glissante |
Traiter des éléments consécutifs |
Traitement de signaux |
Itération sautée |
Traitement sélectif d'éléments |
Nettoyage de données |
Parcours inverse |
Itération en arrière |
Algorithmes d'optimisation |
Exemples d'itération complexes
Implémentation de la fenêtre glissante
def sliding_window(data, window_size):
return [data[i:i+window_size] for i in range(len(data) - window_size + 1)]
sequence = [1, 2, 3, 4, 5, 6]
windows = sliding_window(sequence, 3)
print(windows) ## Output: [[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6]]
def transform_with_index(data):
return [f"Index {idx}: {value}" for idx, value in enumerate(data, 1)]
fruits = ['apple', 'banana', 'cherry']
labeled_fruits = transform_with_index(fruits)
print(labeled_fruits)
- Utilisez des expressions génératrices pour une économie de mémoire
- Exploitez les fonctions intégrées comme
enumerate()
- Minimisez les itérations redondantes
Gestion des erreurs dans l'itération indexée
def safe_index_access(data, index, default=None):
try:
return data[index]
except IndexError:
return default
sample_list = [10, 20, 30]
print(safe_index_access(sample_list, 5, "Not Found"))
Points clés
- L'itération indexée permet une manipulation sophistiquée des données
- Combinez l'indexation avec des techniques de programmation fonctionnelle
- Entraînez-vous avec différents modèles d'itération
- LabEx recommande d'explorer plusieurs approches pour résoudre des problèmes complexes