Je voudrais savoir comment renvoyer les cellules d'une feuille excel
(UsedRange.Value) mais au format texte. J'ai des cellules numériques
mais il faut absoluement qu'elles soient entre guillemets dans le tuple
qui est renvoyé.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
R12y
On Fri, 12 May 2006 11:34:01 +0200, Bertrand wrote:
Bonjour,
Je voudrais savoir comment renvoyer les cellules d'une feuille excel (UsedRange.Value) mais au format texte. J'ai des cellules numériques mais il faut absoluement qu'elles soient entre guillemets dans le tuple qui est renvoyé.
j'allais proposer ceci:
In [8]: l=[1,2,3,4,5] In [9]: s=[str(i) for i in l] In [10]: s
Out[10]: ['1', '2', '3', '4', '5']
Mais ça ne fonctionne que pour les listes, pas les tuples:
In [11]: n=(1,2,3,4,5) In [12]: s=(str(i) for i in n) In [13]: s
On Fri, 12 May 2006 11:34:01 +0200, Bertrand wrote:
Bonjour,
Je voudrais savoir comment renvoyer les cellules d'une feuille excel
(UsedRange.Value) mais au format texte. J'ai des cellules numériques
mais il faut absoluement qu'elles soient entre guillemets dans le tuple
qui est renvoyé.
j'allais proposer ceci:
In [8]: l=[1,2,3,4,5]
In [9]: s=[str(i) for i in l]
In [10]: s
Out[10]: ['1', '2', '3', '4', '5']
Mais ça ne fonctionne que pour les listes, pas les tuples:
In [11]: n=(1,2,3,4,5)
In [12]: s=(str(i) for i in n)
In [13]: s
On Fri, 12 May 2006 11:34:01 +0200, Bertrand wrote:
Bonjour,
Je voudrais savoir comment renvoyer les cellules d'une feuille excel (UsedRange.Value) mais au format texte. J'ai des cellules numériques mais il faut absoluement qu'elles soient entre guillemets dans le tuple qui est renvoyé.
j'allais proposer ceci:
In [8]: l=[1,2,3,4,5] In [9]: s=[str(i) for i in l] In [10]: s
Out[10]: ['1', '2', '3', '4', '5']
Mais ça ne fonctionne que pour les listes, pas les tuples:
In [11]: n=(1,2,3,4,5) In [12]: s=(str(i) for i in n) In [13]: s
On Fri, 12 May 2006 11:34:01 +0200, Bertrand wrote:
Bonjour,
Je voudrais savoir comment renvoyer les cellules d'une feuille excel (UsedRange.Value) mais au format texte. J'ai des cellules numériques mais il faut absoluement qu'elles soient entre guillemets dans le tuple qui est renvoyé.
j'allais proposer ceci:
In [8]: l=[1,2,3,4,5] In [9]: s=[str(i) for i in l] In [10]: s
Out[10]: ['1', '2', '3', '4', '5']
Mais ça ne fonctionne que pour les listes, pas les tuples:
In [11]: n=(1,2,3,4,5) In [12]: s=(str(i) for i in n) In [13]: s
Out[13]: <generator object at 0xb7b6d0ac>
Je cherche pourquoi...
Parce que (f(x) for x in y) est une expression de générateur avec la même syntaxe que la list-comprehension (je l'ai découvert en rédigeant ma quick reference card...).
Si tu fais s = tuple((str(i) for i in n)) ça devrais le faire.
n = range(10) s = tuple((str(i) for i in n)) s ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
Mais sinon tu faisais un "tuple(s)" avec s étant une liste, et tu récupérais un tuple. L'avantage de passer par un générateur est que tu évites la création intermédiaire de la liste.
A+
Laurent.
On Fri, 12 May 2006 11:34:01 +0200, Bertrand wrote:
Bonjour,
Je voudrais savoir comment renvoyer les cellules d'une feuille excel
(UsedRange.Value) mais au format texte. J'ai des cellules numériques
mais il faut absoluement qu'elles soient entre guillemets dans le tuple
qui est renvoyé.
j'allais proposer ceci:
In [8]: l=[1,2,3,4,5]
In [9]: s=[str(i) for i in l]
In [10]: s
Out[10]: ['1', '2', '3', '4', '5']
Mais ça ne fonctionne que pour les listes, pas les tuples:
In [11]: n=(1,2,3,4,5)
In [12]: s=(str(i) for i in n)
In [13]: s
Out[13]: <generator object at 0xb7b6d0ac>
Je cherche pourquoi...
Parce que (f(x) for x in y) est une expression de générateur avec la
même syntaxe que la list-comprehension (je l'ai découvert en rédigeant
ma quick reference card...).
Si tu fais
s = tuple((str(i) for i in n))
ça devrais le faire.
n = range(10)
s = tuple((str(i) for i in n))
s
('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
Mais sinon tu faisais un "tuple(s)" avec s étant une liste, et tu
récupérais un tuple. L'avantage de passer par un générateur est que tu
évites la création intermédiaire de la liste.
On Fri, 12 May 2006 11:34:01 +0200, Bertrand wrote:
Bonjour,
Je voudrais savoir comment renvoyer les cellules d'une feuille excel (UsedRange.Value) mais au format texte. J'ai des cellules numériques mais il faut absoluement qu'elles soient entre guillemets dans le tuple qui est renvoyé.
j'allais proposer ceci:
In [8]: l=[1,2,3,4,5] In [9]: s=[str(i) for i in l] In [10]: s
Out[10]: ['1', '2', '3', '4', '5']
Mais ça ne fonctionne que pour les listes, pas les tuples:
In [11]: n=(1,2,3,4,5) In [12]: s=(str(i) for i in n) In [13]: s
Out[13]: <generator object at 0xb7b6d0ac>
Je cherche pourquoi...
Parce que (f(x) for x in y) est une expression de générateur avec la même syntaxe que la list-comprehension (je l'ai découvert en rédigeant ma quick reference card...).
Si tu fais s = tuple((str(i) for i in n)) ça devrais le faire.
n = range(10) s = tuple((str(i) for i in n)) s ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
Mais sinon tu faisais un "tuple(s)" avec s étant une liste, et tu récupérais un tuple. L'avantage de passer par un générateur est que tu évites la création intermédiaire de la liste.