1
resposta

[Dúvida] Vi que tem dois jeitos

//Split com caracter chumbado

livro = 'As Aventuras de Alice no País das Maravilhas'
letraInicial = 'A'
lista = []
palavras = livro.split()
print (palavras)
for palavra in palavras:
if palavra[:1] == letraInicial:
lista.append(palavra)
print (lista)

// findall
import re
livro = 'As Aventuras de Alice no País das Maravilhas'
letraInicial = 'A'
lista = []
palavras = re.findall(r'\b\w+\b', livro)
for palavra in palavras:
if palavra.startswith(letraInicial):
lista.append(palavra)
print (lista)

E posso usar lower pra tirar o case senisitve, mas funcionalmente as diferenças práticas entre o split e o findall. E qual usamos mais no dia a dia?

1 resposta

Ola, estou iniciando aqui,
3x fazendo python basico, me interessei na tua pergunta e fui pesquisar,
encontrei as definiçoes abaixo:

split findall
Base Delimitador simples Expressões regulares (regex)
Retorno Lista de substrings Lista de correspondências
Complexidade Simples Mais avançado e flexível
Uso comum Separar texto em partes Buscar padrões específicos

e os seguintes exemplos:
split-->
texto = "Python é incrível"
resultado = texto.split() # ['Python', 'é', 'incrível']

findall -->
import re
texto = "Python 3.10 é incrível"
resultado = re.findall(r'\d+.\d+', texto) # ['3.10']

Baseado aqui, penso que deve-se usar o split apenas em casos que tenha a certeza que esta trabalhandosomente com strings tipo texto.
Abaixo um link que orienta as desvantagens do split
https://www.homehost.com.br/blog/pythondjango/split-python/

espero ter ajudado.