Esto debe haber sido preguntado antes, pero me temo que no puedo encontrar la respuesta.
En R, puedo escribir
paste0('s', 1:10)
que devuelve una lista de 10 caracteres (cadena) variables:
[1] "s1" "s2" "s3" "s4" "s5" "s6" "s7" "s8" "s9" "s10"
¿Cómo hago esto simplemente en Python? La única forma en que puedo pensar es con un bucle for, pero debe haber una línea simple.
He intentado cosas como
's' + str(np.arange(10)) ['s', str(np.arange(10))]
>>> ["s" + str(i) for i in xrange(1,11)] ['s1', 's2', 's3', 's4', 's5', 's6', 's7', 's8', 's9', 's10']
EDITAR: el range
funciona tanto en Python 2 como en Python 3, pero en Python 2 xrange
es xrange
un poco más eficiente (es un generador y no una lista). Thansk @ytu
>>> list(map('s{}'.format, range(1, 11))) ['s1', 's2', 's3', 's4', 's5', 's6', 's7', 's8', 's9', 's10']
La respuesta por cdyson37 es la más pythonica; Por supuesto, aún puede usar el range
lugar de xrange
en su caso.
En Python2, también puedes poner más énfasis en el estilo funcional con algo como:
map(lambda x: "s"+str(x), range(1,11))