Cree una lista de Python con la misma cadena una y otra vez y un número que aumente en función de una variable.

Estoy tratando de crear una lista que se rellena con una cadena recurrente y un número que marca cuál en una fila es. El número que marca cuántas cadenas habrá se obtiene de una variable int.

Así que algo como esto:

b = 5 a = range(2, b + 1) c = [] c.append('Adi_' + str(a)) 

Esperaba que esto creara una lista como esta:

 c = ['Adi_2', 'Adi_3', 'Adi_4', 'Adi_5'] 

En su lugar me sale una lista como esta

 c = ['Adi_[2, 3, 4, 5]'] 

Así que cuando bash imprimirlo en nuevas filas

 for x in c: print"Welcome {0}".format(x) 

El resultado de esto es:

 Welcome Adi_[2, 3, 4, 5] 

El resultado que quiero es:

 Welcome Adi_2 Welcome Adi_3 Welcome Adi_4 Welcome Adi_5 

Si alguien tiene ideas lo agradecería.

Casi lo tienes:

 for i in a: c.append('Adi_' + str(i)) 

Su línea inicial estaba transformando toda la lista a como una cadena.

Tenga en cuenta que podría deshacerse del bucle con una lista de comprensión y algún formato de cadena :

 c = ['Adi_%s' % s for s in a] 

o

 c = ['Adi_{0}'.format(s) for s in a] #Python >= 2.6 

Utilizando listas de comprensión:

 b = 5 a = range(2, b + 1) c = ['Adi_'+str(i) for i in a] for x in c: print"Welcome {0}".format(x) 

O como una lista de comprensión:

 b = 5 a = range(2, b + 1) c = ["Adi_" + str(i) for i in a] 

O todo en una línea:

 >>> for s in ['Welcome Adi_%d' % i for i in range(2,6)]: ... print s ... Welcome Adi_2 Welcome Adi_3 Welcome Adi_4 Welcome Adi_5