Sorting with Zip
Tri de structures de données complexes
La fonction zip()
devient incroyablement puissante lorsqu'elle est combinée avec les mécanismes de tri de Python, permettant des stratégies de tri sophistiquées pour des données complexes.
Tri de base avec Zip
## Sorting lists based on secondary criteria
students = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
ages = [22, 25, 20]
## Sort students by scores
sorted_students = [x for _, x in sorted(zip(scores, students), reverse=True)]
print(sorted_students)
## Output: ['Bob', 'Alice', 'Charlie']
Tri multi-critères
## Sorting with multiple criteria
data = [
('Alice', 85, 22),
('Bob', 92, 25),
('Charlie', 78, 20)
]
## Sort by score, then by age
sorted_data = sorted(data, key=lambda x: (x[1], x[2]), reverse=True)
print(sorted_data)
Techniques de tri avancées
graph TD
A[Zip Sorting] --> B[Single Criteria]
A --> C[Multiple Criteria]
A --> D[Complex Sorting]
A --> E[Custom Comparisons]
Scénarios de tri pratiques
Scénario |
Stratégie de tri |
Utilisation de Zip |
Classement des étudiants |
Basé sur les scores |
Zip avec sorted() |
Évaluation des performances |
Multi-facteurs |
Zip avec des clés personnalisées |
Priorisation des données |
Tri complexe |
Zip avec lambda |
Exemple de tri complexe
## Sorting with multiple transformations
names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]
departments = ['Engineering', 'Marketing', 'Sales']
## Sort by score, then by department
sorted_result = sorted(
zip(scores, names, departments),
key=lambda x: (x[0], x[2]),
reverse=True
)
print(sorted_result)
- L'utilisation de
zip()
avec sorted()
crée des tuples temporaires
- Adapté pour les ensembles de données de petite à moyenne taille
- Pour les grands ensembles de données, envisagez des approches alternatives
Chez LabEx, nous insistons sur la compréhension de ces techniques de tri avancées pour écrire un code Python plus efficace et plus lisible.
Points clés
- Zip permet des stratégies de tri flexibles
- Combinez-le avec
sorted()
pour une manipulation de données puissante
- Prend en charge plusieurs critères de tri
- Améliore la lisibilité et la flexibilité du code