2011-06-27 54 views
14

Tôi đang đọc trong các tệp dữ liệu từ máy phổ khối và nhiều số trong dạng e, ví dụ:Tự động xử lý các số theo ký hiệu e (khoa học) trong python

4096.26 5.785e1 
4096.29 5.784e1 
4096.31 5.784e1 
4096.33 5.784e1 
4096.36 5.783e1 

Tôi đang lên kế hoạch về việc sử dụng các chức năng phân chia để có được hai con số ra, nhưng tôi muốn biết là có một chức năng để chuyển đổi cột thứ hai vào nổi python? Tôi biết tôi có thể làm điều đó với biểu thức thông thường nhưng nghĩ có thể có một cách tốt hơn

Cảm ơn bạn

Trả lời

23

Các float() constructor sẽ chấp nhận chuỗi trong e ký hiệu:

>>> float("5.785e1") 
57.85 

Vì vậy, bạn chỉ có thể sử dụng map(float, line.split()) để chuyển đổi một dòng văn bản thành danh sách các phao.

+0

cảm ơn tuyệt vời – Anake

+0

Điều tốt nhất mà tôi từng thấy với python – PatriceG

Các vấn đề liên quan