Problema HackerRank em Python – Base Data Types Lists

Este código em Python é projetado para executar uma série de operações em uma lista com base em comandos fornecidos pelo usuário. Vamos analisar o código passo a passo para entender seu funcionamento:

if __name__ == ‘__main__’:
N = int(input())


This content originally appeared on DEV Community and was authored by Gustavo Medeiros

Este código em Python é projetado para executar uma série de operações em uma lista com base em comandos fornecidos pelo usuário. Vamos analisar o código passo a passo para entender seu funcionamento:

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

if __name__ == '__main__':

  • Essa linha verifica se o script está sendo executado diretamente. Pratica adotada para garantir que o código dentro deste bloco só será executado se o arquivo for o ponto de entrada do programa.

N = int(input())

  • O programa espera que o usuário insira um número inteiro que é armazenado na variável N. Este número representa quantas operações o usuário vai realizar.

l = []

  • Lista vazia l usada para armazenar os elementos conforme as operações forem sendo realizadas.

while(N>0):

  • Um loop while é iniciado que continuará executando enquanto N for maior que 0. isso significa que o loop executará N vezes, uma vez para cada operação que o usuário desejar realizar.

cmd_l = input().split()

  • Dentro do loop o programa espera que o usuário insira uma linha de texto, que é dividida em uma lista de strings (cmd_l) usando o método split(). Cada elemento da lista cmd_l representa uma parte da operação a ser realizada.

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

  • Esta linha verifica se a operação é um comando de "insert" com três partes (cmd_l deve ter comprimento 3 e o primeiro elemento deve ser "insert").

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

  • Se a condição acima for verdadeira, o método insert da lista l é chamado. Os argumentos são convertidos de string para inteiro: cmd_l[1] é a posição onde o elemento será inserido, e cmd_l[2] é o elemento a ser inserido.

elif(len(cmd_l) == 2 and (cmd_l[0] == "remove" or cmd_l[0] == "append")):

  • Esta linha verifica se a operação é um comando de "remove" ou "append" com duas partes cmd_l deve ter comprimento 2 e o primeiro elemento deve ser "remove" ou "append".

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

  • Dependendo do comando(remove ou append), o método correspondente da lista l é chamado. Para remove, o elemento cmd_l (convertido para inteiro) é removido da lista. Para append, o elemento cmd_l[[1](convertido para inteiro) é adicionado ao final da lista.

elif(len(cmd_l) == 1):

  • Verifica se a operação é um comando com uma única parte (cmd_l deve ter comprimento 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)

  • Dependendo do comando(sort, reverse, pop, ou print), o método correspondente da lista l é chamado. sort ordena a lista, reverse inverte a ordem dos elementos, pop remove o último elemento, e print imprime a lista.

N -= 1

  • No final do loop, N é decrementado em 1, indicando que uma operação foi realizada. Isso continua até que N seja 0, quando o loop termina.


This content originally appeared on DEV Community and was authored by Gustavo Medeiros


Print Share Comment Cite Upload Translate Updates
APA

Gustavo Medeiros | Sciencx (2024-09-04T02:54:06+00:00) Problema HackerRank em Python – Base Data Types Lists. Retrieved from https://www.scien.cx/2024/09/04/problema-hackerrank-em-python-base-data-types-lists/

MLA
" » Problema HackerRank em Python – Base Data Types Lists." Gustavo Medeiros | Sciencx - Wednesday September 4, 2024, https://www.scien.cx/2024/09/04/problema-hackerrank-em-python-base-data-types-lists/
HARVARD
Gustavo Medeiros | Sciencx Wednesday September 4, 2024 » Problema HackerRank em Python – Base Data Types Lists., viewed ,<https://www.scien.cx/2024/09/04/problema-hackerrank-em-python-base-data-types-lists/>
VANCOUVER
Gustavo Medeiros | Sciencx - » Problema HackerRank em Python – Base Data Types Lists. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/09/04/problema-hackerrank-em-python-base-data-types-lists/
CHICAGO
" » Problema HackerRank em Python – Base Data Types Lists." Gustavo Medeiros | Sciencx - Accessed . https://www.scien.cx/2024/09/04/problema-hackerrank-em-python-base-data-types-lists/
IEEE
" » Problema HackerRank em Python – Base Data Types Lists." Gustavo Medeiros | Sciencx [Online]. Available: https://www.scien.cx/2024/09/04/problema-hackerrank-em-python-base-data-types-lists/. [Accessed: ]
rf:citation
» Problema HackerRank em Python – Base Data Types Lists | Gustavo Medeiros | Sciencx | https://www.scien.cx/2024/09/04/problema-hackerrank-em-python-base-data-types-lists/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.