Dicas de programação

As 10 melhores e úteis dicas para acelerar seu código Python

As 10 melhores e úteis dicas para acelerar seu código Python

Se alguém perguntar a você - “Qual é a linguagem de programação de crescimento mais rápido no mundo agora?”A resposta será simples. É python. A popularidade mundial se deve à sua sintaxe simples e bibliotecas ricas. Hoje em dia, você pode fazer quase tudo com o python: ciência de dados, aprendizado de máquina, processamento de sinal, visualização de dados - o que você quiser. No entanto, muitas pessoas afirmam que o python é um pouco lento para resolver problemas graves. Mas o tempo para executar um programa depende do código que se escreve. Com algumas dicas e truques, pode-se acelerar o código Python e melhorar o desempenho do programa.

Dicas e truques para acelerar o código Python


Caso você esteja procurando maneiras de acelerar seu código Python, o artigo é para você. Ele ilustra as técnicas e estratégias para reduzir o tempo de execução de um programa. As dicas não apenas irão acelerar o código, mas também melhorarão as habilidades em python.

01. Use bibliotecas e funções integradas


Python tem toneladas de funções de biblioteca e módulos. Eles são escritos por desenvolvedores especialistas e foram testados várias vezes. Portanto, essas funções são altamente eficientes e ajudam a acelerar o código - não há necessidade de escrever o código se a função já estiver disponível na biblioteca. Pegamos um exemplo simples a esse respeito.

# code1 newlist = [] por palavra na lista antiga: nova lista.anexar (palavra.superior())
# code2 newlist = map (str.superior, lista antiga)

Aqui, o segundo código é mais rápido do que o primeiro porque a função da biblioteca map () foi usada. Essas funções são úteis para iniciantes. Quem não quer um código mais rápido, limpo e menor para escrever? Portanto, use funções e módulos de biblioteca tanto quanto possível.

02. Estrutura de dados certa no lugar certo


Usar uma estrutura de dados adequada diminuirá o tempo de execução. Antes de começar, você deve pensar sobre a estrutura de dados que será usada no código. Uma estrutura de dados perfeita irá acelerar o código Python enquanto outros irão bagunçar. Você tem que ter uma ideia sobre a complexidade do tempo de diferentes estruturas de dados.

Python tem estruturas de dados integradas, como lista, tupla, conjunto e dicionário. As pessoas estão acostumadas a usar listas. Mas há alguns casos em que tupla ou dicionário funcionam muito melhor do que listas. Para aprender mais estruturas de dados e algoritmos, você precisa ler os livros de aprendizagem do Python.

03. Try para minimizar o uso de para Laço


É muito difícil evitar o uso de para ciclo. Mas sempre que você tem a chance de evitá-lo, os especialistas dizem que você o faz. O loop for é dinâmico em python. Seu tempo de execução é mais do que um loop while. O loop for aninhado consome muito mais tempo. Dois loops for aninhados tomarão o quadrado do tempo em um único loop for.

# code1 para i em big_it: m = re.pesquisar (r '\ d 2 - \ d 2 - \ d 4', i) se m:… 
# code2 date_regex = re.compilar (r '\ d 2 - \ d 2 - \ d 4') para i em big_it: m = date_regex.pesquisar (i) se m: .. 

É melhor usar um substituto adequado neste caso. Além disso, se para loops são inevitáveis, mova o cálculo para fora do loop. Isso vai economizar muito tempo. Podemos ver no exemplo dado acima. Aqui, o 2º código é mais rápido do que o 1º código, uma vez que o cálculo foi feito fora do loop.

04. Evite variáveis ​​globais


Variáveis ​​globais são usadas em python em muitos casos. Palavra-chave global é usada para declará-lo. Mas o tempo de execução dessas variáveis ​​é mais do que o da variável local. Usar menos deles economiza no uso desnecessário de memória. Além disso, o Python coleta uma variável local mais rapidamente do que uma global. Ao navegar por variáveis ​​externas, o Python é genuinamente lento.

Várias outras linguagens de programação se opõem ao uso não planejado de variáveis ​​globais. O contador é devido aos efeitos colaterais que levam a um maior tempo de execução. Portanto, tente usar uma variável local em vez de uma global sempre que possível. Além disso, você pode fazer uma cópia local antes de usá-lo em um loop, economizando tempo.

05. Aumente o uso da compreensão de listas


A compreensão de lista oferece uma sintaxe mais curta. É difícil quando uma nova lista é feita com base em uma lista existente. Loop é obrigatório em qualquer código. Às vezes, a sintaxe dentro do loop torna-se grande. Nesse caso, pode-se usar a compreensão de lista. Podemos pegar o exemplo para entendê-lo com mais precisão.

# code1 square_numbers = [] para n no intervalo (0,20): se n% 2 == 1: square_numbers.anexar (n ** 2)
# code2 square_numbers = [n ** 2 para n no intervalo (1,20) se n% 2 == 1]

Aqui, o segundo código leva menos tempo do que o primeiro código. A abordagem para a compreensão da lista é mais curta e mais precisa. Pode não fazer muita diferença em códigos pequenos. Mas, em um desenvolvimento extenso, pode economizar algum tempo. Portanto, use a compreensão de lista sempre que tiver a chance de acelerar seu código Python.

06. Substitua range () por xrange ()


A questão de range () e xrange () vem se você estiver usando python 2. Essas funções são usadas para iterar qualquer coisa no loop for. No caso de intervalo (), ele salva todos os números do intervalo na memória. Mas xrange () salva apenas o intervalo de números que precisam ser exibidos.

O tipo de retorno de range () é uma lista e o de xrange () é um objeto. Eventualmente, xrange () leva menos memória e, como resultado, menos tempo. Portanto, use xrange () em vez de range () sempre que possível. Claro, isso só se aplica a usuários de python 2.

07. Use geradores


Em python, um gerador é uma função que retorna um iterador quando a palavra-chave yield é chamada. Os geradores são excelentes otimizadores de memória. Eles devolvem um item por vez, em vez de devolver todos de uma vez. Se sua lista inclui um número considerável de dados e você precisa usar um dado de cada vez, use geradores.

Geradores computam dados em partes. Portanto, a função pode retornar o resultado quando chamada e manter seu estado. Os geradores preservam o estado da função interrompendo o código depois que o chamador gera o valor, e ele continua a ser executado de onde foi interrompido mediante solicitação.

Uma vez que os geradores acessam e calculam o valor sob demanda, uma parte significativa dos dados não precisa ser salva inteiramente na memória. Isso resulta em uma economia de memória considerável, em última análise, acelerando o código.

08. Concatenar Strings com Join


A concatenação é bastante comum ao trabalhar com strings. Geralmente, em python, nós concatenamos usando '+'. No entanto, em cada etapa, a operação “+” cria uma nova string e copia o material antigo. Este processo é ineficiente e leva muito tempo. Temos que usar join () para concatenar strings aqui se quisermos acelerar nosso código Python.

# code1 x = "Eu" + "sou" + "a" + "python" + "geek" print (x)
# code2 x = "".join (["eu", "sou", "a", "python", "geek"]) print (x)

Se olharmos para o exemplo, o primeiro código imprime ”Iamapythongeek” e o segundo código imprime ”Eu sou um geek python”.  A operação join () é mais eficiente e rápida do que '+'. Também mantém o código limpo. Quem não quer um código mais rápido e limpo? Então, tente usar join () em vez de '+' para concatenar strings.

09. Crie um perfil de seu código


A criação de perfil é uma maneira clássica de otimizar o código. Existem muitos módulos para medir as estatísticas de um programa. Eles nos mostram onde o programa está gastando muito tempo e o que fazer para otimizá-lo. Portanto, para garantir a otimização, conduza alguns testes e aprimore o programa para melhorar a eficácia.

O cronômetro é um dos criadores de perfil. Você pode usá-lo em qualquer lugar do código e encontrar o tempo de execução de cada estágio. Então podemos melhorar o programa quando ele demorar muito. Além disso, há um módulo de perfil integrado chamado LineProfiler. Também fornece um relatório descritivo sobre o tempo consumido. Existem vários criadores de perfil que você pode aprender lendo livros sobre python.

10. Mantenha-se atualizado - use a versão mais recente do Python


Existem milhares de desenvolvedores que estão adicionando mais recursos ao python regularmente. Os módulos e funções de biblioteca que estamos usando hoje estarão desatualizados pelos desenvolvimentos de amanhã. Os desenvolvedores Python estão tornando a linguagem mais rápida e confiável a cada dia. Cada nova versão aumentou seu desempenho.

Portanto, precisamos atualizar as bibliotecas para a versão mais recente. Python 3.9 é a última versão agora. Muitas bibliotecas de python 2 podem não funcionar em python3. Vamos manter isso em mente e sempre usar a versão mais recente para obter o desempenho máximo.

Finalmente, Insights


O valor dos desenvolvedores Python no mundo está aumentando dia a dia. Então, o que você está esperando! É hora de você começar a aprender a acelerar o código Python. As dicas e truques que fornecemos certamente o ajudarão a escrever códigos eficientes. Se você segui-los, esperamos que possa melhorar seu código e entrar em coisas mais avançadas de python.

Tentamos mostrar todos os principais truques e dicas necessários para acelerar o código. Esperamos que o artigo tenha respondido a maioria de suas perguntas. Agora, o resto está com você. No entanto, não há fim para o conhecimento e não há fim para o aprendizado. Então, se perdemos algo importante, nos avise. Boa aprendizagem!

Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...
Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...
Top 5 cartas de captura de jogos
Todos nós vimos e amamos streaming de jogos no YouTube. PewDiePie, Jakesepticye e Markiplier são apenas alguns dos melhores jogadores que ganharam mil...