2010-10-23 67 views
32

Tôi khá mới lập trình nên tôi hy vọng câu hỏi này đủ đơn giản.Chuyển chuỗi chuỗi thành danh sách nổi trong python

tôi cần phải biết làm thế nào để chuyển đổi một chuỗi đầu vào của số cách nhau bằng dấu cách trên một dòng duy nhất:

5.2 5.6 5.3 

và chuyển đổi này vào một danh sách float

lsit = [5.2,5.6,5.3] 

Làm thế nào điều này có thể được thực hiện ?

+4

Biến của bạn có thực sự được gọi là 'lsit' hoặc là lỗi đánh máy trong câu hỏi không? Và nếu nó được coi là 'list' thì tôi cũng nên thêm rằng bạn không nên sử dụng' list' như một tên biến vì nó ẩn một built-in có cùng tên. –

Trả lời

60

Hãy thử một danh sách hiểu:

s = '5.2 5.6 5.3' 
floats = [float(x) for x in s.split()] 

Trong Python 2.x nó cũng có thể được thực hiện với bản đồ:

floats = map(float, s.split()) 

Lưu ý rằng trong Python 3.x phiên bản thứ hai trả về một đối tượng bản đồ thay vì danh sách. Nếu bạn cần danh sách, bạn có thể chuyển đổi danh sách đó thành danh sách có cuộc gọi đến list hoặc thay vào đó chỉ cần sử dụng phương pháp đọc danh sách.

+2

Chỉ muốn thêm rằng Thập phân có thể là một ứng cử viên tốt hơn để đối phó với các điểm nổi. http://docs.python.org/library/decimal.html – dcolish

+0

Tôi gặp lỗi "không thể chuyển đổi chuỗi thành nổi" khi cố gắng sử dụng mã này –

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