Jump to content
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.

Share this post


Link to post
Share on other sites
import re
s = "string com caracteres repetidos"
print [m.start() for m in re.finditer('e', s)]

 

Share this post


Link to post
Share on other 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??

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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??

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By DoVale
      Olá,
       
      To concluindo uma aplicação com django que gera certificado em pdf..
       
      Tava tudo certo até fazer deploy no heroku e ter que criar um s3 na amazom para colocar os arquivos staticos
       
      Tenho um html com o template do certificado que recebe os dados dos alunos tranquilo, o background (template do certificado) não está carregando, quando estava localhost, com o caminho da pasta, tava funcionando, mas agora não.
       
      A tag img funciona tranquilamente, mas o background por css não.
      Aqui o código do template:
      <meta charset="utf-8" /> {% load static %} <style type="text/css"> @page { size: 1122.52px 1587.4px ; /*size: A4 landscape;*/ margin: 0cm; background-image: url({{bg_front}}); height: 1588; } </style> <page backimgx="{{bg_front}}"> <!-- <page_header> ... </page_header> <page_footer> ... </page_footer> --> <img src="{{bg_front}}"> <div class="front"><br><br> <p style="margin-top: 35px; margin-left: 900px; font-size: 22px; line-height: 150%;"> <b text-align='center'>{{cpf}}</b> </p> <br /><br /><br /><br /><br /><br /><br /><br /><br /> <!-- <center><h4 style="font-size: 23px;">Certificado</h4></center> --> <p style="margin: 60px ;margin-left: 140px; font-size: 22px; line-height: 150%;">{{text_front}}</p> </div> <p style="margin-top: 1120px ;margin-left: 518px; font-size: 22px; line-height: 150%;"> {{cpf}} </p> </div> </page> </div> Abaixo o trecho do código em python 
      class ViewPDF(View): def get(self, request, *args, **kwargs): data = {} pdf = True if kwargs['pk']: # # CARREGAR DADOS DO ALUNO # try: participant = Participant.objects.get(pk=kwargs['pk']) print(participant.cpf) if participant.name: certificate = Certificate.objects.get(pk=participant.certificate.pk) pathBack = str(certificate.template.template_back.url) pathFront = str(certificate.template.template_front.url) print(pathFront) # # CONFIGURA OS BACKGROUNDS E TEXTO # data['bg_front'] = pathFront data['bg_back'] = pathBack setting = certificate.template.settings start_date = datetime.strftime(certificate.start_date,'%d/%m/%Y') end_date = datetime.strftime(certificate.start_date,'%d/%m/%Y') data['text_front'] = setting.replace('<<nome>>',participant.name).replace('<<cpf>>',str(participant.cpf)).replace('<<ch>>',str(certificate.ch)).replace('<<instituicao>>',str(certificate.institution)).replace('<<DataInicio>>',start_date).replace('<<DataFim>>',end_date) data['cpf'] = participant.cpf pdf = render_to_pdf('app_certificates/body_front_pdf.html', data) return HttpResponse(pdf, content_type='application/pdf') except TypeError as e: return HttpResponse(e) Já tentei várias coisas, o problema me parece ser com o css, pois funciona na tag img
       
       
    • By klonder
      Olá a todos(as)!
      Estava há 3 dias pesquisando sobre como resolver um problema que estava enfrentando em meu sistema, que consistia no seguinte:
      Implantar um Combobox com dados vindos do banco. Esse combobox deveria ser editável e apresentar os valores em seu popup suspenso. À medida em que o usuário fosse digitando, o autocomplete faria a busca em todos os valores já cadastrados e mostraria os compatíveis (procedimento até então comum em qualquer autocomplete). Todavia, o combobox só poderia perder o foco caso o texto inserido fosse exatamente igual a um dos valores existentes no popup, ou seja, não poderia ser  inserido nada que já não estivesse cadastrado anteriormente e presente na lista de valores.
      Após muito pesquisar, cheguei a um resultado muito satisfatório que compartilho com vocês, visto que varri a internet inteira à procura desse código e não encontrei em lugar nenhum. PyQt5 é extremamente pobre em tutoriais, principalmente em português.
       
      Segue o código que poderá ajudar quem precise:
      from PyQt5 import QtGui, QtCore, QtWidgets from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QComboBox, QLineEdit, QCompleter from PyQt5.QtCore import QSize, Qt, QSortFilterProxyModel, QStringListModel class Ui_Autocomplete(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 200, 800, 600) self.setWindowTitle('Autocomplete com combobox') self.cboxEstado = QComboBox(self) self.cboxEstado.move(50, 50) self.cboxEstado.addItem("Acre") self.cboxEstado.addItem("Amazonas") self.cboxEstado.addItem("Amapá") self.cboxEstado.addItem("Pará") self.cboxEstado.addItem("Rondônia") self.cboxEstado.addItem("Roraima") self.cboxEstado.addItem("Tocantins") self.cboxEstado.addItem("Distrito Federal") self.cboxEstado.addItem("Goiás") self.cboxEstado.addItem("Mato Grosso") self.cboxEstado.addItem("Mato Grosso do Sul") self.cboxEstado.addItem("Alagoas") self.cboxEstado.addItem("Bahia") self.cboxEstado.addItem("Ceará") self.cboxEstado.addItem("Maranhão") self.cboxEstado.addItem("Piauí") self.cboxEstado.addItem("Pernambuco") self.cboxEstado.addItem("Paraíba") self.cboxEstado.addItem("Rio Grande do Norte") self.cboxEstado.addItem("Sergipe") self.cboxEstado.addItem("Paraná") self.cboxEstado.addItem("Rio Grande do Sul") self.cboxEstado.addItem("Santa Catarina") self.cboxEstado.addItem("Espírito Santo") self.cboxEstado.addItem("Minas Gerais") self.cboxEstado.addItem("São Paulo") self.cboxEstado.addItem("Rio de Janeiro") self.cboxEstado.setEditable(True) self.cboxEstado.completer().setCompletionMode(QCompleter.PopupCompletion) self.cboxEstado.completer().setFilterMode(Qt.MatchContains) self.cboxEstado.completer().setCaseSensitivity(QtCore.Qt.CaseInsensitive) self.cboxEstado.focusOutEvent = self.pedeuFoco self.leRegiao = QLineEdit(self) self.leRegiao.move(250,50) self.leRegiao.resize(200, 22) def pedeuFoco(self,event): occur = 0 for i in range(len(self.cboxEstado)): if self.cboxEstado.currentText() == self.cboxEstado.itemText(i): occur = occur+1 if occur == 0: self.cboxEstado.lineEdit().setFocus() self.cboxEstado.lineEdit().selectAll() else: #Retira o cursor do widget QComboBox.focusOutEvent(self.cboxEstado,event) if __name__ == '__main__': import sys app = QApplication(sys.argv) mainWin = Ui_Autocomplete() mainWin.show() sys.exit(app.exec_())  
       
    • By Misael Silva
      Boa noite, pessoal do Imasters.
      Gostaria de expor aqui minha dúvida em relação se faria alguma diferença em minha vida tal  escolha:
       
      Fiz o Enem e passei no IFSP (Jacareí) em Análise e Desenvolvimento de Sistemas, entretanto são 3 anos de duração e no período da manhã. Além de ter que arcar com entorno de 220 reais em transporte por mês(50% de desc. por se aluno, seria algo entorno 440 ao mês).
       
      E provavelmente é possivel que eu passe em uma instituição privada como a UMC (universidade de Mogi das cruzes) ou Eniac no mesmo curso em questão. No qual seria ótimas questões por serem ambas a noite e que eu não arcaria com passagem pelo passe livre. Além da duração respectivamente de 2 e 2,5 anos.
       
      O grande desafio é que: estou para fazer 18 anos, terminei a escola ano passado e preciso trabalhar, não sou boy, estou criando barba e se eu não me empregar no próximo ano provavelmente as coisas serão apertadas como já estão sendo...
       
      Pretendo arranjar um emprego na parte do dia e estudar a noite, e estou receoso por trocar uma pública por uma privada, espero que alguém leia e possa me ajudar nessa decisão...
       
      Atenciosamente
      Misael Machado da Silva.
    • By Motta
      As 7 linguagens de programação que você deve aprender em 2020
    • By alisonalves
      Boa tarde Pessoal. Meu site passou por uma nova reestruturação e algumas páginas mudaram de nome e outras antes eram ".html" e agora são ".php". Acontece que muitas dessas páginas antigas são bastante visitadas e eu não queria perder a visitação delas. Vou dar um exemplo. Tenho uma página chamada carros_minas-gerais.html que passará a ser chamar carros_minas-gerais.php. Como faço para esta página antiga não perder visitação? Pensei em mantê-la com um redirecionamento para a página nova via "refresh". E com o passar do tempo quando estas páginas antigas perderem visitação eu as deletaria. Está certo meu raciocínio ou não? Valeu
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.