Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/07/2017, à 23:27

paul18

[Résolu] re.finditer -> dans une variable

Bonsoir,

Dans mon exemple, je n'ai manifestement pas compris :
- quel est ici le type du résultat donner par re.finditer (liste ?)
- et comment l'enregistrer dans une variable, le '=' ne fonctionnant pas

Merci par avance

Paul

ligne = 'je cherche à "enregistrer" la position des "double-quotes" ' 
for match in re.finditer('"',ligne):
    print match.span()

Dernière modification par paul18 (Le 03/07/2017, à 15:34)

Hors ligne

#2 Le 03/07/2017, à 06:03

pingouinux

Re : [Résolu] re.finditer -> dans une variable

Bonjour,
Ceci répondra sans doute à tes questions :

import re
ligne = 'je cherche à "enregistrer" la position des "double-quotes" '
resul=re.finditer('"',ligne)
print(resul,type(resul))
for match in resul: print(match.span())

qui donne ce résultat :

<callable_iterator object at 0x7f7a84cf9a90> <class 'callable_iterator'>
(13, 14)
(25, 26)
(43, 44)
(57, 58)

Hors ligne

#3 Le 03/07/2017, à 15:36

paul18

Re : [Résolu] re.finditer -> dans une variable

Bonjour,

Merci pour ce retour ; j'ai trouvé une solution qui n'est peut-être pas la plus élégante, mais j'enregistre le résultat dans une variable en utilisant 'append' dans la boucle

Paul

Hors ligne

#4 Le 03/07/2017, à 17:07

pingouinux

Re : [Résolu] re.finditer -> dans une variable

Tu peux éventuellement montrer ce que tu as fait.

Hors ligne

#5 Le 03/07/2017, à 19:14

paul18

Re : [Résolu] re.finditer -> dans une variable

voilà

toto = []
ligne = 'je cherche à "enregistrer" la position des "double-quotes" ' 
resul=re.finditer('"',ligne)
for match in resul: 
    print(match.span())
    toto.append(match.span())

Hors ligne

#6 Le 03/07/2017, à 20:26

pingouinux

Re : [Résolu] re.finditer -> dans une variable

Ce n'est pas plus simple, mais tu peux faire directement ceci, qui donne le même toto que toi en #5 :

toto=list(map(lambda x:x.span(),re.finditer('"',ligne)))

Tu peux aussi remplacer list par tuple.

Hors ligne