Ho una lista di stringhe in forma comein Python come convertire il numero di galleggiare in una lista mista
a = ['str','5','','4.1']
voglio convertire tutti i numeri nella lista a stare a galla, ma lascio il resto invariato, Ti piace questa
a = ['str',5,'',4.1]
ho provato
map(float,a)
ma a quanto pare mi ha dato un errore perché alcuni ca stringa nnon essere convertito in float. Ho anche provato
a[:] = [float(x) for x in a if x.isdigit()]
ma mi dà solo
[5]
in modo che il numero di galleggiante e tutte le altre stringhe sono persi. Cosa devo fare per mantenere la stringa e il numero allo stesso tempo?
Mi dispiace non essere stato molto chiaro, la lista può essere lunga e non conosco l'ordine esatto degli elementi, il che significa che non so quale sia il numero in anticipo. – LWZ
Hai provato a fare ''4.1'.isdigit()', o leggendo [i documenti] (http://docs.python.org/2/library/stdtypes.html#str.isdigit)? "Restituisce true se tutti i caratteri nella stringa sono cifre ..." Poiché ''.'' non è una cifra, restituisce false. – abarnert
@abarnert, hai ragione. Ho sbagliato su 4.1 ed è ora risolto. – LWZ