Qualcuno sa cosa magica devo usare per modificare la lista x:Python - elenco trasformazione
x = [1,2,3,4,5,11]
in y elenco?
y = [ '01', '02', '03', '04', '05', '11']
Grazie a tutti in anticipo per avermi aiutato ...
Qualcuno sa cosa magica devo usare per modificare la lista x:Python - elenco trasformazione
x = [1,2,3,4,5,11]
in y elenco?
y = [ '01', '02', '03', '04', '05', '11']
Grazie a tutti in anticipo per avermi aiutato ...
È possibile utilizzare una list comprehension (Python 2.6+):
y = ["{0:0>2}".format(v) for v in x]
O per Python prima di 2,6:
y = ["%02d" % v for v in x]
Modifica: mancava il fatto che volevi lo zero padding ...
si desidera utilizzare il built-in funzione di map
:
>>> x = [1,2,3,4,5]
>>> x
[1, 2, 3, 4, 5]
>>> y = map(str, x)
>>> y
['1', '2', '3', '4', '5']
EDIT Hai cambiato i requisiti su di me! Per rendere visualizzare zeri iniziali, si esegue questa operazione:
>>> x = [1,2,3,4,5,11]
>>> y = ["%02d" % v for v in x]
>>> y
['01', '02', '03', '04', '05', '11']
che punto e virgola mi sta fissando! smettila! –
Whooops! Le vecchie abitudini sono dure a morire. –
E se mi piacerebbe aggiungere zero se il numero è una cifra e voglio che i miei numeri siano di 2 cifre ciascuno? – elfuego1
per ottenere gli 0:
y = ['%02d' % i for i in x]
y = ['%02d'%v for v in x]
vorrei usare una lista di comprensione me stesso, ma qui è un'altra soluzione usando la mappa per chi è interessato ...
map(lambda v: "%02d" %v, x)
Un'alternativa a stringhe di formato sarebbe quella di utilizzare zfill della stringa () metodo:
y = [str(i).zfill(2) for i in x]
Un'altra cosa: si potrebbe essere dopo imbottitura sulla base del massimo elemento della lista, quindi invece di utilizzare 2, si potrebbe fare:
pad_length = len(str(max(x)))
y = [str(i).zfill(pad_length) for i in x]
Prova questo:
>>> [str(v).rjust(2,'0') for v in x]
['01', '02', '03', '04', '05', '11']
rjust come metodo di classe string, prende un argomento intero (lunghezza risultato) e di un carattere di riempimento opzionale
Interessante, non ho sentito di questa sintassi "{0: 0> 2}". È coperto da qualsiasi PEP o altro documento? – Rodrigo
È una nuova sintassi che (presumibilmente) intende sostituire gradualmente la sintassi%. In realtà è molto bello per alcune cose, e ho deciso di usarlo nel mio codice, ma a me sembra ancora strano dopo così tanto tempo con%. Maggiori informazioni qui: http://docs.python.org/library/string.html#formatstrings – DNS