Supprimer les valeurs Max et Min de la liste d'entiers python
Je ne suis pas complètement d'green Python, mais je suis intéressé à en apprendre/maintien de bonnes pratiques alors que je développe mes compétences.
Je veux supprimer les valeurs haute et basse à partir d'une liste de nombres, qui je ne sais comment faire, mais je suis curieux de savoir si il est mieux/le moyen privilégié pour ce faire.
mylist = [1, 4, 0, 3, 2]
mylist.sort() #[0, 1, 2, 3, 4]
trimmed = mylist[1:-1] #[1, 2, 3]
- Je obtenir la réponse souhaitée, mais ai-je le droit de répondre de manière appropriée?
source d'informationauteur Esteban
Vous devez vous connecter pour publier un commentaire.
Voici une autre façon de le faire si vous ne voulez pas changer l'ordre des éléments:
Suppose que le haut/bas n'ont pas de doublons dans la liste, ou si il existe, qu'il est OK pour supprimer un seul d'entre eux.
Ce besoin de faire, 2-4 passe à travers la liste: deux pour trouver les valeurs max et min, et jusqu'à 2 pour trouver les valeurs pour l'enlever (si ils arrivent à être à la fin de la liste). Vous pouvez réduire ce en écrivant une boucle Python pour trouver le max et le min en une seule passe (et souvenez-vous de l'index de chaque sorte que vous pouvez supprimer les éléments à l'index après la boucle). Cependant,
min()
etmax()
sont implémentés en C, afin de les remplacer avec du code Python serait probablement entraîner une baisse des performances, même si elle vous a permis de réduire le nombre de passes.