Tôi có một danh sách các chuỗi trong các hình thức nhưbằng Python làm thế nào để chuyển đổi số nổi trong một danh sách hỗn hợp
a = ['str','5','','4.1']
Tôi muốn chuyển đổi tất cả các số trong danh sách thả nổi, nhưng để lại phần còn lại không thay đổi, như thế này
a = ['str',5,'',4.1]
tôi đã cố gắng
map(float,a)
nhưng dường như nó đã cho tôi một lỗi bởi vì một số chuỗi ca nnot được chuyển thành float. Tôi cũng đã cố gắng
a[:] = [float(x) for x in a if x.isdigit()]
nhưng nó chỉ mang lại cho tôi
[5]
nên số float và tất cả các chuỗi khác bị mất. Tôi nên làm gì để giữ chuỗi và số cùng một lúc?
Xin lỗi tôi đã không rõ ràng, danh sách có thể dài và tôi không biết thứ tự chính xác của các yếu tố, có nghĩa là tôi không biết cái nào là số trước khi bàn tay. – LWZ
Bạn đã thử làm '' 4.1'.isdigit() ', hoặc đọc [tài liệu] (http://docs.python.org/2/library/stdtypes.html#str.isdigit)? "Trả về true nếu tất cả các ký tự trong chuỗi là chữ số ..." Vì ''.'' không phải là một chữ số, nó trả về false. – abarnert
@abarnert, bạn nói đúng. Tôi đã sai về 4.1 và bây giờ nó đã được sửa. – LWZ