Problème HackerRank en Python - Listes de types de données de base

WBOY
Libérer: 2024-09-04 14:31:10
original
1036 Les gens l'ont consulté

Problema HackerRank em Python - Base Data Types Lists

Ce code Python est conçu pour effectuer une série d'opérations sur une liste basée sur les commandes fournies par l'utilisateur. Analysons le code étape par étape pour comprendre son fonctionnement :

if __name__ == '__main__':
    N = int(input())
    l = []
    while(N>0):
        cmd_l = input().split()
        if(len(cmd_l) == 3 and cmd_l[0] == "insert"):
            #insert statement
            l.insert(int(cmd_l[1]),int(cmd_l[2]))
        elif(len(cmd_l) == 2 and (cmd_l[0] == "remove" or cmd_l[0] == "append")):
            if(cmd_l[0] == "remove"):
                l.remove(int(cmd_l[1]))
            elif(cmd_l[0] == "append"):
                l.append(int(cmd_l[1]))
        elif(len(cmd_l) == 1):
            if(cmd_l[0] == "sort"):
                l.sort()
            elif(cmd_l[0] == "reverse"):
                l.reverse()
            elif(cmd_l[0] == "pop"):
                l.pop()                
            elif(cmd_l[0] == "print"):
                print(l)
        N -= 1
Copier après la connexion

si __name__ == '__main__' :

  • Cette ligne vérifie si le script est exécuté directement. Pratique adoptée pour garantir que le code contenu dans ce bloc ne sera exécuté que si le fichier est le point d'entrée du programme.

N = int(entrée())

  • Le programme attend de l'utilisateur qu'il saisisse un entier stocké dans la variable N. Ce nombre représente le nombre d'opérations que l'utilisateur effectuera.

l = []

  • Liste vide utilisée pour stocker les éléments au fur et à mesure que les opérations sont effectuées.

pendant(N>0):

  • Une boucle while est démarrée et continuera à s'exécuter tant que N est supérieur à 0. Cela signifie que la boucle s'exécutera N fois, une fois pour chaque opération que l'utilisateur souhaite effectuer.

cmd_l = input().split()

  • Dans la boucle, le programme attend que l'utilisateur entre une ligne de texte, qui est divisée en une liste de chaînes (cmd_l) à l'aide de la méthode split(). Chaque élément de la liste cmd_l représente une partie de l'opération à effectuer.

if(len(cmd_l) == 3 et cmd_l[0] == "insert") :

  • Cette ligne vérifie si l'opération est une commande "insert" en trois parties (cmd_l doit avoir une longueur de 3 et le premier élément doit être "insert").

l.insert(int(cmd_l[1]),int(cmd_l[2]))

  • Si la condition ci-dessus est vraie, la méthode d'insertion de la liste l est appelée. Les arguments sont convertis de chaîne en entier : cmd_l[1] est la position où l'élément sera inséré, et cmd_l[2] est l'élément à insérer.

elif(len(cmd_l) == 2 et (cmd_l[0] == "supprimer" ou cmd_l[0] == "append") :

  • Cette ligne vérifie si l'opération est une commande en deux parties "supprimer" ou "append". cmd_l doit avoir une longueur de 2 et le premier élément doit être "supprimer" ou "append".

if(cmd_l[0] == "supprimer") :
l.remove(int(cmd_l[1]))
elif(cmd_l[0] == "append") :
l.append(int(cmd_l[1]))

  • En fonction de la commande (supprimer ou append), la méthode correspondante de la liste l est appelée. Pour la suppression, l'élément cmd_l (converti en entier) est supprimé de la liste. Pour append, l'élément cmd_l[[1](converti en entier) est ajouté à la fin de la liste.

elif(len(cmd_l) == 1):

  • Vérifie si l'opération est une commande en une seule partie (cmd_l doit avoir une longueur de 1).

if(cmd_l[0] == "tri") :
l.sort()
elif(cmd_l[0] == "inverse") :
l.reverse()
elif(cmd_l[0] == "pop") :
l.pop()
elif(cmd_l[0] == "imprimer") :
imprimer(l)

  • En fonction de la commande (tri, reverse, pop ou print), la méthode correspondante de la liste l est appelée. sort trie la liste, reverse inverse l'ordre des éléments, pop supprime le dernier élément et print imprime la liste.

N -= 1

  • En fin de boucle, N est décrémenté de 1, indiquant qu'une opération a été effectuée. Cela continue jusqu'à ce que N soit 0, lorsque la boucle se termine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal