HOWTO · Python

Encontre um caractere em uma string em Python

Este tutorial demonstra como encontrar a posição do caractere em uma string

Strings são uma coleção de caracteres. Cada caractere na string tem alguma posição específica que pode ser usada para acessá-lo. Neste tutorial, discutiremos como encontrar a posição de um caractere em uma string.

Use a função find() para encontrar a posição de um caractere em uma string

A função find() retorna a posição de uma substring. Também podemos especificar as posições inicial e final nas quais queremos pesquisar (por padrão, o início é 0 e o final é o comprimento da string).

No código a seguir, usaremos essa função para encontrar a posição de um caractere em uma string.

s = "python is fun"
c = "n"
print(s.find(c))

Resultado:

5

Observe que ele retorna a primeira posição do caractere encontrado na string. Outra coisa a lembrar sobre esta função é que ela retorna -1 quando a substring fornecida não está presente na string.

Use a função rfind() para encontrar a posição de um caractere em uma string

Esta função é semelhante à função find(), com a única diferença sendo que ela retorna a última posição da substring.

Por exemplo,

s = "python is fun"
c = "n"
print(s.rfind(c))

Resultado:

12

Use a função index() para encontrar a posição de um caractere em uma string

A função index() é usada de forma semelhante à função find() para retornar a posição dos caracteres em uma string. Como a função find(), ela também retorna a primeira ocorrência do caractere na string.

Por exemplo,

s = "python is fun"
c = "n"
print(s.index(c))

Resultado:

5

A diferença entre as funções index() e find() é que a função index() retorna ValueError quando o caractere necessário está faltando na string.

Use o loop for para encontrar a posição de um caractere em uma string

Nesse método, podemos observar todas as ocorrências do caractere em uma string. Nós iteramos através da string e comparamos cada caractere individualmente. Cada posição onde a correspondência é encontrada é indicada e armazenada em uma variável diferente.

O código a seguir implementa essa lógica.

s = "python is fun"
c = "n"
lst = []
for pos, char in enumerate(s):
    if char == c:
        lst.append(pos)
print(lst)

Resultado:

[5, 12]

Usamos a função enumerate() porque torna a iteração mais fácil e atribui uma variável de contador a cada caractere da string.

Também podemos implementar este método usando o método de compreensão de lista, que é considerado mais rápido e mais limpo.

Por exemplo,

s = "python is fun"
c = "n"
print([pos for pos, char in enumerate(s) if char == c])

Resultado:

[5, 12]