Ir para conteúdo
Luis Meirelles

Mostrar index exato de um caractere em uma string

Recommended Posts

Olá, estou com uma dúvida. Se eu quiser saber o índice de uma letra em uma string, eu uso o .index(), correto?

O seguinte código:

nom

nome = 'luis'
print(nome.index('l'))

Retornaria 0, correto?

Também poderia usar o .find (), que obteria o mesmo resultado, mas se eu modificar essa string, e ela tiver duas letras iguais, então este código:

sobrenome = 'meirelles'
print(sobrenome.index('l'))

Retornaria 5, sendo que o primeiro 'l' está no index cinco, mas tem um segundo 'l', que está no Index 6.Como eu faço para mostrar o Index exato dos caracteres, mesmo se eles se repetirem na string??

 

Desde já, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites
import re
s = "string com caracteres repetidos"
print [m.start() for m in re.finditer('e', s)]

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, _Isis_ disse:

import re
s = "string com caracteres repetidos"
print [m.start() for m in re.finditer('e', s)]

 

Cara, to aqui de novo porque quando eu executo meu script com esse codigo, ele, tipo faz uma lista com uma lista dentro (nao sei se uda alguma coisa, pois antes eu estudava Java e la tinha arrays 2D ou matrizes, e elas se comportavam diferente). no meu programa, eu tenho que adicionar esses valores em uma lista que ja tem outros valores com o .append(). Tem como eu adicionar sem ficar com estes colchetes a mais??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tanto na versão 2.7 como na 3.6 é gerada uma lista simples contendo os índices. Não tem nada a mais dentro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sei se você me entendeu, sim, e gerada um lista simples, mas quando eu coloco tipo, esse codigo:

import re
lista = [3, 8]
s = "string com caracteres repetidos"
indices = ([m.start() for m in re.finditer('e', s)])
lista.append(indices)
print(lista)

ele retorna: [3, 8, [17, 19, 23, 25]]

tem como fazer ele retornar algo como [3, 8, 17, 19, 23, 25], ou nao muda nada??

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sei se você me entendeu

Não, porque a não ser que você poste o código inteiro, não tenho como saber o que você está fazendo.

 

Use o método extend, não o append.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por thiagofdiniz
      Estou fazendo um curso técnico e estou com uma duvida sobre um exercício que me foi passado com a seguinte pergunta:
      Elabore um algoritmo que leia dois números, some cinco ao de menor valor, compare os dois valores e mostre o maior.
       
      Mas no meu código, ele está somando e mostrando o de menor valor, e não o de menor
      Será que alguém pode me ajudar não estou conseguindo enxergar o erro.. 
      x=int(input('Digite um número e aperte ENTER')) y=int(input('Digite um número e aperte ENTER')) if x>y: y=y+5 if x>y: print(x) else: print(y) else: x<y x=x+5 if x<y: print(y) else: print(x)  
    • Por Bruno Goedert Dalmolin
      Não consigo apresentar as palavras equivalentes conseguem me ajudar???
      O código é o seguinte: 
       
      #include <stdio.h>
      char equivale(int ddd){
          switch(ddd){
              case 61:
                  return "Brasilia";
                  break;
              case 71:
                  return "Salvador";
                  break;
              case 11:
                  return "Sao Palo";
                  break;
              case 21:
                  return "Rio de Janeiro";
                  break;
              case 32:
                  return "Juiz de Fora";
                  break;
              case 19:
                  return "Campinas";
                  break;
              case 27:
                  return "Vitoria";
                  break;
              case 31:
                  return "Belo Horizonte";
                  break;
          }
      }
      int main(){
          int ddd;
          scanf("%d",&ddd);
          equivale(ddd);
          printf("%d",equivale(ddd));
      }
    • Por FIM1999
      Preciso montar um sistema para geração automática de carteirinha para membros de um clube de benefícios. Alguém já tem alguma codificação pronta para isso?
      Ou então sabe como fazer?
    • Por Felipe_N22
      Estou rodando um projeto no netbeans em Java Web, mas quando eu compilo ele só atualiza as alterações que eu faço no index, as demais alterações ele ignora.
       
      Qual seria o problema ?
    • Por anllj
      Alguém pode me ajudar? 
       
      Escrever um programa que permita ao usuário digitar o dia e mês de seu
      aniversário e a data de hoje (dia e mês); em seguida, o programa deve calcular
      quantos dias faltam entre a data de hoje e a data do próximo aniversário. Suponha
      todos os meses com 30 dias.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.