mam listy ciągów znaków w postaci podobnegow Pythonie jak przekonwertować liczbę unosić się w mieszanym listy
a = ['str','5','','4.1']
chcę przekonwertować wszystkie numery na liście, aby pływać, ale resztę pozostawić bez zmian, jak to
a = ['str',5,'',4.1]
próbowałem
map(float,a)
ale widocznie dał mi jakiś błąd, ponieważ ciąg CA Nie należy konwertować na float. Próbowałem też
a[:] = [float(x) for x in a if x.isdigit()]
ale to tylko daje mi
[5]
więc liczba typu float i wszystkie inne struny są tracone. Co powinienem zrobić, aby zachować ciąg i numer w tym samym czasie?
Przepraszam, że nie było to zbyt jasne, lista może być długa i nie znam dokładnej kolejności elementów, co oznacza, że nie wiem, która z nich jest liczbą przed ręką. – LWZ
Czy próbowałeś '' 4.1'.isdigit() 'lub czytając [dokumentację] (http://docs.python.org/2/library/stdtypes.html#str.isdigit)? "Zwraca wartość true, jeśli wszystkie znaki w łańcuchu są cyframi ..." Ponieważ ''.'' nie jest cyfrą, zwraca wartość false. – abarnert
@abarnert, masz rację. Myliłem się co do wersji 4.1 i zostało to naprawione. – LWZ