Rechercher : dans
Par :

[python] poker problème avec les strings

Dernière réponse le 30 avr 2008 à 10:45:58 AwwA, le 28 avr 2008 à 21:28:17 
 Signaler ce message aux modérateurs

Voila j'ai crée une fonction qui a pour but de suprimer les lettres dans une chaine .


mon but est de transformer cette chaine


['9s', '9d', '10h', '9c', '8h', '13s', '3d']

en

['9', '9', '10', '9', '8', '13', '3']


voila mon programme

def w(liste):
    if liste.count('h')>0:
        print liste.replace("h","",10)


    if liste.count('s')>0:
        print liste.replace("s","",10)

    
    if liste.count('d')>0:
        print liste.replace("d","",10)

    if liste.count('c')>0:
        print liste.replace("c","",10)

def z(liste):
    wow=[]
    i=0
    while i<6:
        wow=wow+[w(liste)]
        i=i+1
    return wow

mais il me donne
[None, None, None, None, None, None]

ce qui n'est pas tres pratique !

merci
Configuration: Mac OS X
Safari 525.13

Meilleures réponses pour « [python] poker problème avec les strings » dans :
Votre première application graphique avec Python et Glade VoirCe guide vous aidera à créer pas à pas votre première application graphique. Nous allons utiliser le langage de programme Python et l'API graphique GTK, en utilisant le logiciel Glade pour créer facilement les interfaces graphiques. C'est de la...
[Python] Lire et écrire des fichiers CSV VoirLIRE ET ÉCRIRE DES FICHIERS CSV Python www.python.org, dans sa version 2.4 supporte de facto le format CSV (comma-separated values: valeurs séparées par des virgules). La Library Reference est certes très explicative à ce sujet, mais uniquement...
Comment avoir le Pokédex national dans le jeu Pokémon VoirProblème Je vais voir le professeur Sorbier et je le dit que j'ai vu 208 Pokémon et il ne me donne pas le Pokédex. Il me dit qu'il me reste des Pokémon de Sinnoh à voir et qu'il me manque encore deux Pokémon (Manaphy et Motisma). Je suis donc...
Javascript - L'objet String VoirLes particularités de l'objet String string est un mot anglais qui signifie "chaîne", il s'agit en fait de chaîne de caractères. L'objet String est un objet qui contient un certain nombre de propriétés et de méthodes permettant la manipulation...

1

kilian, le 29 avr 2008 à 00:08:43

Ce ne sont pas des print qu'il te faut, ta fonction doit retourner la chaine et non pas l'afficher:

def w(liste):
    if liste.count('h')>0:
        liste= liste.replace("h","",10)


    if liste.count('s')>0:
        liste= liste.replace("s","",10)

    
    if liste.count('d')>0:
        liste= liste.replace("d","",10)

    if liste.count('c')>0:
        liste= liste.replace("c","",10)
    
    return liste

Répondre à kilian

2

jisisv, le 29 avr 2008 à 01:08:04

Une solution plus pythonique

root@osiris ~/src
$ cat cut.py
#!/usr/bin/python

def chop(aString) :
        return aString[0 : -1]
# on suppose que aString n'est ni None ni vide

avar = ['9s', '9d', '10h', '9c', '8h', '13s', '3d']
result = map(chop , avar)
print result

root@osiris ~/src
$ python cut.py
['9', '9', '10', '9', '8', '13', '3']

Voir par exemple
http://docs.python.org/tut/node7.html#SECTION007130000000000­000000
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)

Répondre à jisisv

3

AwwA, le 29 avr 2008 à 19:32:23

Merci beaucoup :)

en effet le print c'est pas mega malin ...

Répondre à AwwA

4

 sebsauvage, le 30 avr 2008 à 10:45:58

Si c'est pour garder uniquement les chiffres, peut aussi utiliser isdigit() qui indique si un caractère est un chiffre ou non:

#!/usr/bin/python
def keepDigits(chaine):
    return ''.join([c for c in chaine if c.isdigit()])
   
avar = ['9s', '9d', '10h', '9c', '8h', '13s', '3d']
result = map(keepDigits , avar)
print result

Répondre à sebsauvage