J'ai le petit souscis suivant : je veux convertir une liste de type
t=['gfhé','kkà'] en une liste avec majuscules sans accent
['GFHE','KKA']
Donc, je fais :
for f in t:
t[f].ascii_uppercase()
Et j'ai l'erreur suivante :
t[f].ascii_uppercase()
TypeError: list indices must be integers, not str
Pouvez-vous me dire ce qui ne va pas ?
Merci
--
+-- SenoN --+
http://senon.free.fr/
senon_a_...@free.fr
Si l’on n’est plus que mille, eh bien, j’en suis ! Si même
Ils ne sont plus que cent, je brave encor Sylla ;
S’il en demeure dix, je serai le dixième ;
Et s’il n’en reste qu’un, je serai celui-là !
> for f in t:
> t[f].ascii_uppercase()
>
> Et j'ai l'erreur suivante :
>
> t[f].ascii_uppercase()
> TypeError: list indices must be integers, not str
>
> Pouvez-vous me dire ce qui ne va pas ?
> Merci
Dans ton exemple f n'est pas l'indice de l'item mais sa valeur.
Il faut donc faire f.ascii_uppercase() (sous r�serve que cela soit ce
que tu veuilles faire).
--
@+
Doug - Linux user #307925 - Slackware64 roulaize ;-)
[ Plus ou moins avec une chance de peut-�tre ]
> J'ai le petit souscis suivant : je veux convertir une liste de type
> t=['gfhé','kkà'] en une liste avec majuscules sans accent
> ['GFHE','KKA']
>
> Donc, je fais :
>
> for f in t:
> t[f].ascii_uppercase()
>
> Et j'ai l'erreur suivante :
>
> t[f].ascii_uppercase()
> TypeError: list indices must be integers, not str
>
> Pouvez-vous me dire ce qui ne va pas ?
Presque tout : ascii_uppercase n'est pas une fonction (c'est une chaîne
de caractères constantes), tu n'as pas compris ce que signifie "for f in
t" (ici t[f] n'a pas de sens), et tu as oublié que tu devais construire
une nouvelle liste plutôt que d'essayer de taper dans la liste
originale. En plus, il ne suffit pas de mettre en majuscules, il faut
d'abord remplacer les caractères accentués par leur "équivalent" sans
accent.
Bon, on a vraiment l'impression que tu nous demandes de faire tes
devoirs. On ne le fera pas. Mais on peut te filer un coup de main si tu
as des questions précises. Commence par choisir un des deux problèmes
suivants :
1) transformer une (seule) chaîne de caractères correctement
2 transformer une liste en une autre (en faisant une transformation
simple sur chaque chaîne, par exemple ajouter un 'x' à la fin avec +)
-- Alain.
> on a vraiment l'impression que tu nous demandes de faire tes devoirs
+1
--
Michel Claveau
En dehors des remarques précédentes qui semblent justifiées ce que tu
cherches à faire ressemble à la fonction normalize du module unicodedata.
Pour la partie syntaxe python, la boucle 'for' décompose déjà ton
tableau en éléments contrairement à d'autres langages.
>>> tableau = list('1', '2', '3')
>>> for element in tableau:
>>> print element
>>>
1
2
3
Pour utiliser des indices il y a la fonction range(debut, fin) :
>>> range(0, 3)
[0, 1, 2]
Pour ce genre de problème il serait sans plus facile de passer par de la
messagerie instantanée comme IRC:
serveur: irc.freenode.net
canal : #python-fr
--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales