Sous Python, j’ai utiliser le module random.sample, ce qui me retourne un résultat de la forme d’un tableau ex :[5,6].
Ensuite j’ai utilisé un raw_input, ce qui me retourne un résultat de la forme chaine de caractères ‹ 5,6 ›. Or j’aurais besoin que c’est deux résultat soit considéré comme égaux. Comme puis-je faire ? Autrement dit peut on enlever les ou mettre des ‹ › comme l’on veut ?
Merci
Salut,
D’un cote tu as une liste d’entiers: [5,6]
Et de l’autre une chaine de caractere (string): ‹ 5,6 ›
J’ai des methodes pour convertir l’un vers l’autre en dessous. J’utilise des fonctions tres utiles de python:
- map permet d’appliquer une fonction a tous les elements d’une liste, et renvoie la liste ‹ image ›.
- join permet de lier par un caractere (ici la virgule) les elements d’une liste de strings
- split permet de transformer une chaine de caracteres en une liste, en separant les ‹ mots › par un caractere que l’on specifie, ici la virgule.
Pour transformer la liste d’entiers en string:
l = [5,6]
l2 = map(str, l) #l2 == [‹ 5 ›, ‹ 6 ›]
s = ‹ , ›.join(l2) #s == ‹ 5,6 ›
print s
Pour transformer une chaine de carac en liste d’entiers:
s = ‹ 5,6 ›
l = s.split(‹ , ›) # l == [‹ 5 ›, ‹ 6 ›]
l2 = map(int, l) # l2 == [5, 6]
print l2
Edité le 13/07/2008 à 15:30
OK merci j’essaie ca…
J’ai essayé de transformer une chaine de carac en liste d’entiers, sauf que ma chai^ne c’est ‹ noir,blanc › sauf que j’obtiens ce message d’erreur :
Traceback (most recent call last):
File « C:\Documents and Settings\Petiois\Bureau\new.py », line 3, in
l2 = map(int, l) # l2 == [5, 6]
ValueError: invalid literal for int() with base 10: ‹ noir ›
Heu… tu veux vraiment transformer ‹ noir › et ‹ blanc › en entiers ?
Forcement tu vas avoir une erreur, la fonction int ne fonctionne que sur les caracteres qui representent des nombres !..
Tu voudrais que noir et blanc soient egaux a combien exactement ?
Comment ça à combien près ?