Muitos programadores gostam do Python por sua sintaxe simples e concisa. Esses algoritmos em Python são pequenos programas de exemplo que você pode usar para resolver problemas diários comuns.
Use esses algoritmos em Python fáceis de digerir e leve sua eficiência de programação para o próximo nível.
1. Extraia um subconjunto de um dicionário
Você pode extrair um subconjunto de um dicionário usando o método de compreensão de dicionário.
test_marks = {<br></br> 'Alex' : 50,<br></br> 'Adam' : 43,<br></br> 'Eva' : 96,<br></br> 'Smith' : 66,<br></br> 'Andrew' : 74<br></br>}<br></br> <br></br>greater_than_60 = { key:value for key, value in test_marks.items() if value > 60 }<br></br>print(greater_than_60)<br></br> <br></br>students = { 'Alex', 'Adam', 'Andrew'}<br></br>a_students_dict = { key:value for key,value in test_marks.items() if key in students }<br></br>print(a_students_dict)
Saída:
{'Eva': 96, 'Smith': 66, 'Andrew': 74}<br></br>{'Alex': 50, 'Adam': 43, 'Andrew': 74}
2. Pesquisar e substituir texto
Você pode pesquisar e substituir um padrão de texto simples em uma string usando o método str.replace() .
str = "Peter Piper picked a peck of pickled peppers"<br></br>str = str.replace("Piper", "Parker")<br></br>print(str)
Saída:
Peter Parker picked a peck of pickled peppers
Para padrões mais complicados, você pode usar o método sub() da biblioteca re. Expressões regulares em Python tornam a tarefa muito mais fácil para padrões complicados.
import re<br></br>str = "this is a variable name"<br></br>result = re.sub('\s', '_', str)<br></br>print(result)
Saída:
this_is_a_variable_name
O código acima substitui o caractere de espaço em branco por um caractere de sublinhado.
3. Elementos de Sequência de Filtros
Você pode filtrar elementos de uma sequência de acordo com determinadas condições usando a compreensão de lista.
list = [32, 45, 23, 78, 56, 87, 25, 89, 66]<br></br> <br></br># Filtering list where elements are greater than 50<br></br>filtered_list = [ele for ele in list if ele>50]<br></br>print(filtered_list)
Saída:
[78, 56, 87, 89, 66]
4. Alinhar Strings de Texto
Você pode alinhar strings de texto usando os métodos ljust() , rjust() e center() . Esses métodos justificam à esquerda, justificam à direita e centralizam uma string em um campo de uma determinada largura.
str = "Python is best"<br></br>print(str.ljust(20))<br></br>print(str.center(20))<br></br>print(str.rjust(20))
Saída:
Python is best <br></br> Python is best <br></br> Python is best
Esses métodos também aceitam um caractere de preenchimento opcional.
str = "Python is best"<br></br>print(str.ljust(20, '#'))<br></br>print(str.center(20, '#'))<br></br>print(str.rjust(20, '#'))
Saída:
Python is best######<br></br>###Python is best###<br></br>######Python is best
Nota : Você também pode usar a função format() para alinhar strings.
5. Converta Strings em DateTimes
Você pode usar o método strptime() da classe datetime para converter uma representação de string da data/hora em um objeto de data.
from datetime import datetime<br></br>str = '2022-01-03'<br></br>print(str)<br></br>print(type(str))<br></br>datetime_object = datetime.strptime(str, '%Y-%m-%d')<br></br>print(datetime_object)<br></br>print(type(datetime_object))
Saída:
2022-01-03<br></br><class 'str'><br></br>2022-01-03 00:00:00<br></br><class 'datetime.datetime'>
Nota: Se o argumento string não for consistente com o parâmetro format, o método strptime() não funcionará.
6. Descompacte uma sequência em variáveis separadas
Você pode descompactar qualquer sequência em variáveis usando a operação de atribuição. Este método funciona desde que o número de variáveis e a estrutura da sequência coincidam.
Desempacotando Tuplas
tup = (12, 23, 34, 45, 56)<br></br>a, b, c, d, e = tup<br></br>print(a)<br></br>print(d)
Saída:
12<br></br>45
Listas de descompactação
list = ["Hey", 23, 0.34, (55, 76)]<br></br>a, b, c, d = list<br></br>print(a)<br></br>print(d)
Saída:
Hey<br></br>(55, 76)
Descompactando Strings
str = "Hello"<br></br>ch1, ch2, ch3, ch4, ch5 = str<br></br>print(ch1)
Saída:
H
Se o número de variáveis e a estrutura da sequência não corresponderem, você receberá um erro:
list = ["Hey", 23, 0.34, (55, 76)]<br></br>a, b, c = list
Saída:
Traceback (most recent call last):<br></br>File "unpack-list-error.py", line 2, in <module><br></br>a, b, c = list<br></br>ValueError: too many values to unpack (expected 3)
7. Escrevendo funções que aceitam qualquer número de argumentos posicionais
Você precisa usar um argumento * para aceitar qualquer número de argumentos posicionais.
def sumOfElements(firstTerm, *otherTerms):<br></br> s = firstTerm + sum(otherTerms)<br></br> print(s)<br></br>sumOfElements(10, 10, 10, 10, 10)<br></br>sumOfElements(10)<br></br>sumOfElements(10, 10, 10)
Saída:
50<br></br>10<br></br>30
8. Retornar vários valores de uma função
Você pode retornar vários valores de uma função usando uma tupla, lista ou dicionário.
def returnMultipleSports():<br></br> sport1 = "football"<br></br> sport2 = "cricket"<br></br> sport3 = "basketball"<br></br> return sport1, sport2, sport3<br></br>sports = returnMultipleSports()<br></br>print(sports)
Saída:
('football', 'cricket', 'basketball')
No exemplo acima, a função retorna uma tupla. Você pode descompactar a tupla e usar os valores retornados.
def returnMultipleLanguages():<br></br> language1 = "English"<br></br> language2 = "Hindi"<br></br> language3 = "French"<br></br> return [language1, language2, language3]<br></br>languages = returnMultipleLanguages()<br></br>print(languages)
Saída:
['English', 'Hindi', 'French']
Neste exemplo, a função retorna uma lista.
9. Iterar no sentido inverso
Você pode iterar sobre uma sequência na ordem inversa usando a função reversed() , a função range() ou a técnica de fatiamento.
Iterando inversamente usando a função reversed()
list1 = [1, 2, 3, 4, 5, 6, 7]<br></br>for elem in reversed(list1):<br></br> print(elem)
Saída:
7<br></br>6<br></br>5<br></br>4<br></br>3<br></br>2<br></br>1
Iterando inversamente usando a função range()
list1 = [1, 2, 3, 4, 5, 6, 7]<br></br>for i in range(len(list1) - 1, -1, -1):<br></br> print(list1[i])
Saída:
7<br></br>6<br></br>5<br></br>4<br></br>3<br></br>2<br></br>1
Iterando em sentido inverso usando a técnica de fatiamento
list1 = [1, 2, 3, 4, 5, 6, 7]<br></br>for elem in list1[::-1]:<br></br> print(elem)
Saída:
7<br></br>6<br></br>5<br></br>4<br></br>3<br></br>2<br></br>1
10. Lendo e gravando JSON em um arquivo
Você pode trabalhar com dados JSON usando o pacote json integrado em Python.
Escrevendo JSON em um arquivo
Você pode gravar JSON em um arquivo usando o método json.dump() .
import json<br></br>languages = {<br></br> "Python" : "Guido van Rossum",<br></br> "C++" : "Bjarne Stroustrup",<br></br> "Java" : "James Gosling"<br></br>}<br></br>with open("lang.json", "w") as output:<br></br> json.dump(languages, output)
Isso criará um novo arquivo chamado lang.json .
Lendo JSON de um arquivo
Você pode ler JSON de um arquivo usando a função json.load() . Esta função carrega os dados JSON de um arquivo JSON em um dicionário.
import json<br></br>with open('lang.json', 'r') as o:<br></br> jsonData = json.load(o)<br></br>print(jsonData)
Saída:
{'Python': 'Guido van Rossum', 'C++': 'Bjarne Stroustrup', 'Java': 'James Gosling'}
11. Gravando em um arquivo que ainda não existe
Portanto, se você quiser gravar em um arquivo apenas se ele ainda não existir, será necessário abrir o arquivo no modo x (modo de criação exclusivo).
with open('lorem.txt', 'x') as f:<br></br> f.write('lorem ipsum')
Se o arquivo lorem.txt já existir, esse código fará com que o Python lance um FileExistsError .
Então, se você quiser dar uma olhada no código-fonte completo usado neste artigo, aqui está o repositório do GitHub.
Torne seu código robusto com funções internas do Python
Use funções para dividir um programa em partes modulares e executar tarefas específicas. O Python fornece muitas funções internas, como range (), slice (), sorted (), abs (), e assim por diante, que podem tornar suas tarefas muito mais fáceis. Faça uso dessas funções internas para escrever um código mais legível e funcional.