Comment prendre une liste et s'assurer qu'elle est du plus grand au plus petit en supprimant des éléments sans sort ()?

Juan Acosta-Quinones

Je dois parcourir une liste de plus de 1000 numéros et supprimer le premier numéro s'il est plus petit que le suivant.

Par exemple:

[10,2,10,8,5,6,1,2,9]serait converti en [10,10,9].

Voici ma mise en œuvre actuelle:

oddList = [17,2,10,6,3,4,3,8,3,6]
for x in oddList[x:y]:
    for y in oddList[x:y]:
        if x < y:
            oddList.pop()
print(oddList)

Ici, oddList devrait ressembler à [17,10,8,6].

Cependant, j'obtiens l'erreur qui yprécède l'affectation. Ceci est la dernière partie de mon programme et je suis venu avec cela en essayant de rechercher pop(), de manipuler des listes et de paramètres.

Patrick Yu

La raison pour laquelle votre code ne fonctionne pas est que vous n'avez pas déclaré les variables xet yque vous ne les avez définies que pendant la boucle for (il ne connaît pas encore les valeurs initiales de xet y).

En outre, il semble que vous ayez utilisé la recherche par force brute pour trouver un élément plus important dans la liste. Vous n'avez pas besoin de force brute et le code peut également être optimisé pour O(N). Commencez par la fin de la liste et enregistrez le plus grand élément actuel. Si current elementest <que largest element, vous pouvez supprimer l'élément actuel (car il y aura toujours un élément supérieur à lui sur le côté droit).

Voici la nouvelle implémentation:

oddList = [3,17,2,10,6,3,4,3,8,3,6]
maxElement = 0

for i in range(len(oddList)-1,-1,-1):
    if(oddList[i] < maxElement):
        oddList.pop(i)
        i+=1
    else:
        maxElement = oddList[i]
print(oddList)

Sur la oddListvous obtenez votre résultat attendu, [17, 10, 8, 6].

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Microsoft.WebApplication.targets

  2. 2

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  3. 3

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  4. 4

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

    Exporter la table de l'arborescence vers CSV avec mise en forme

  7. 7

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  8. 8

    Créer un système Buzzer à l'aide de python

  9. 9

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  10. 10

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  11. 11

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  12. 12

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  13. 13

    Conversion double en BigDecimal en Java

  14. 14

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  15. 15

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  18. 18

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  19. 19

    comment afficher un bouton au-dessus d'un autre élément ?

  20. 20

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  21. 21

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

chaudétiquette

Archive