Encontre um caractere em uma string em Python

Manav Narula 30 janeiro 2023
  1. Use a função find() para encontrar a posição de um caractere em uma string
  2. Use a função rfind() para encontrar a posição de um caractere em uma string
  3. Use a função index() para encontrar a posição de um caractere em uma string
  4. Use o loop for para encontrar a posição de um caractere em uma string
Encontre um caractere em uma string em Python

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]
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artigo relacionado - Python String