2016-11-30 1 views
0

j'ai un compteur:Comment remplacer un nombre entier avec .replace()

count = [] 

def count_up(digit_1, digit_2, digit_3, digit_4, digit_5, digit_6,  digit_7): 
    if(tick = True): 
     count = [] 
     digit_1 = digit_1 + 1 
     if(digit_1 == 27): 
      digit_1 = 0 
      digit_2 += 1 
      if(digit_2 == 27): 
       digit_2 = 0 
       digit_3 += 1 
       if(digit_3 == 27): 
        digit_3 = 0 
        digit_4 += 1 
        if(digit_4 == 26): 
         digit_4 = 0 
         digit_5 += 1 
         if(digit_5 == 26): 
          digit_5 = 0 

    count.append(digit_1) 
    count.append(digit_2) 
    count.append(digit_3) 
    count.append(digit_4) 
    count.append(digit_5) 
    print count 
    count = [] 

et je souhaite modifier chaque chiffre dans la liste pour la lettre correspondante (1 = a, 26 = z)

J'ai essayé .replace(), mais il vient avec:

File "/Users/Johnpaulbeer/pythonpractice/test.py", line 99, in >count_decoder count = [w.replace(1, 'a') for w in count] AttributeError: 'int' object has no attribute 'replace'

Que puis-je faire d'autre, ou sinon, comment puis-je changer l'entier dans une chaîne?

+1

Pourquoi vous essayez de simuler un 'dict()' 'une liste()'? –

+0

Avez-vous essayé la fonction [map] (http://book.pythontips.com/en/latest/map_filter.html#map)? –

Répondre

4

J'interprète votre question comme étant "une liste de nombres entre 1 et 26, comment obtenir une liste de caractères entre a et z?". Vous pourriez faire:

count = [chr(w + ord("a") - 1) for w in count] 

Exemple:

>>> count = [8, 5, 12, 12, 15, 23, 15, 18, 12, 4] 
>>> count = [chr(w + ord("a") - 1) for w in count] 
>>> count 
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']