Tôi có một chức năng có thể chấp nhận một danh sách hoặc một mảng numpy.
Trong cả hai trường hợp, danh sách/mảng có một phần tử duy nhất [luôn luôn]. Tôi chỉ cần trả lại một chiếc phao.
Vì vậy, ví dụ: tôi có thể nhận được:
list_ = [4]
hoặc mảng numpy:
array_ = array[[4]]
Và tôi nên trở lại
4.0
Vì vậy, một cách tự nhiên [tôi sẽ nói], tôi sử dụng float [...] trên list_ và nhận:
TypeError: float[] argument must be a string or a number
Tôi làm tương tự với Array_ và lần này nó hoạt động bằng cách trả lời với "4.0". Từ đó, tôi biết rằng danh sách của Python không thể được chuyển đổi thành nổi theo cách này.
Dựa trên sự thành công với chuyển đổi mảng numpy để nổi lên điều này dẫn tôi đến cách tiếp cận:
float[np.asarray[list_]]
Và điều này hoạt động khi List_ vừa là danh sách Python và khi nó là một mảng numpy.
Câu hỏi
Nhưng có vẻ như cách tiếp cận này có một chi phí đầu tiên chuyển đổi danh sách thành một mảng numpy và sau đó nổi. Về cơ bản: có cách nào tốt hơn để làm điều này?
Cách pythonic nhất để chuyển đổi danh sách các chuỗi thành danh sách phao là sử dụng danh sách hiểu
array_ = array[[4]]
4. Nó lặp lại trên tất cả các phần tử trong danh sách và chuyển đổi từng phần tử danh sách array_ = array[[4]]
5 thành giá trị nổi bằng hàm tích hợp array_ = array[[4]]
6.list of strings to a list of floats is to use the list comprehension array_ = array[[4]]
4. It iterates over all elements in the list and converts each list element array_ = array[[4]]
5 to a float value using the array_ = array[[4]]
6 built-in function. Bài viết này cho bạn thấy những cách đơn giản nhất để chuyển đổi danh sách một chiều chỉ bao gồm các chuỗi thành một danh sách các phao.convert a one-dimensional list consisting only of strings to a list of floats.
Vấn đề: Đưa ra một danh sách các chuỗi
7. Làm thế nào để chuyển đổi nó thành một danh sách phao array_ = array[[4]]
8?: Given a list of strings array_ = array[[4]]
array_ = array[[4]]
7. How to convert it to a list of floats array_ = array[[4]]
8?Phương pháp 1: Danh sách hiểu biết
Giả sử chúng ta có một danh sách:
a = ["1", "2.0", "-3.4"]
Bây giờ, hãy kiểm tra loại của phần tử danh sách đầu tiên:
print[type[a[0]]] #
Hãy để áp dụng chức năng tích hợp
array_ = array[[4]]
9 và nhận danh sách các phao bằng cách sử dụng danh sách hiểu biết:print[[float[x] for x in a]] # [1.0, 2.0, -3.4]
Danh sách hiểu là một cách nhỏ gọn để tạo danh sách. Công thức đơn giản là
4.0
0.List comprehension is a compact way of creating lists. The simple formula is 4.0
0. - Biểu thức: Phải làm gì với mỗi yếu tố danh sách?: What to do with each list element?
- Bối cảnh: Những yếu tố nào để chọn? Bối cảnh bao gồm một số lượng tùy ý là
1 và4.0
2Statements.: What elements to select? The context consists of an arbitrary number of4.0
1 and4.0
2statements.4.0
Bạn có thể xem tôi giải thích danh sách toàn diện trong video này:
Giới thiệu đơn giản về danh sách hiểu trong Python
Kiểm tra loại số trong danh sách mới:
A = [float[x] for x in a] print[type[A[0]]] #
Hàm tích hợp
array_ = array[[4]]
9 chuyển đổi một chuỗi thành một float. Do đó, nó giúp chúng tôi tạo một danh sách phao mới từ danh sách các chuỗi trong một dòng mã duy nhất.Phương pháp 2: Hàm bản đồ
Hàm tích hợp
4.0
4 được tối ưu hóa và hiệu quả tốt, khi nó được gọi, các yếu tố của danh sách được truy xuất khi truy cập.Do đó, một yếu tố được lưu trữ và xử lý trong bộ nhớ, cho phép chương trình không lưu trữ toàn bộ danh sách các phần tử trong bộ nhớ hệ thống.
Áp dụng cho cùng một danh sách
4.0
5 Mã sau:a = ["1", "2.0", "-3.4"] print[list[map[float, a]]] # [1.0, 2.0, -3.4]
Hàm
4.0
6 áp dụng đối số đầu tiên, một hàm, cho mỗi phần tử trong một điều khác. Nó biến đổi từng phần tử trong bản gốc có thể lặp lại thành một phần tử mới và trả về một đối tượng 4.0
4 mới của các giá trị được chuyển đổi. Để có được danh sách, bạn cần chuyển đổi nó bằng hàm tạo 4.0
8 tích hợp.Bạn có thể xem video giải thích của tôi về chức năng bản đồ tại đây:
Làm chủ hàm bản đồ Python [+Video]
Phương pháp 3: Đối với vòng lặp
Tất nhiên, bạn cũng có thể chuyển đổi một danh sách các chuỗi thành danh sách các phao sử dụng một vòng đơn giản cho vòng lặp.
Đây là điều mà hầu hết mọi người đến từ một ngôn ngữ lập trình như Java và C ++ sẽ làm vì họ không biết cách sử dụng khả năng hiểu danh sách nhất, nhưng phương pháp 1].Method 1].
array_ = array[[4]]
0Phương pháp cơ bản này để chuyển đổi danh sách các chuỗi thành danh sách các phao sử dụng ba bước:list of strings to a list of floats uses three steps:
- Tạo một danh sách trống với
9.4.0
- Lặp lại trên mỗi phần tử chuỗi bằng cách sử dụng vòng lặp
1, chẳng hạn như4.0
1.TypeError: float[] argument must be a string or a number
- Chuyển đổi chuỗi thành một chiếc phao bằng
2 và nối nó vào danh sách phao mới bằng phương thứcTypeError: float[] argument must be a string or a number
3.TypeError: float[] argument must be a string or a number
Phương pháp 4: Danh sách hiểu + eval []
Bạn cũng có thể sử dụng chức năng
TypeError: float[] argument must be a string or a number
4 trong danh sách hiểu để chuyển đổi danh sách các chuỗi thành danh sách phao:array_ = array[[4]]
1💡 & nbsp; Python sườn tích hợp
TypeError: float[] argument must be a string or a number
5 hàm phân tích đối số chuỗi TypeError: float[] argument must be a string or a number
6 vào biểu thức python, chạy nó và trả về kết quả của biểu thức. Nếu biểu thức của người Viking là một biểu diễn nổi đơn giản, Python sẽ chuyển đổi đối số TypeError: float[] argument must be a string or a number
6 thành một chiếc phao.Python’s built-in TypeError: float[] argument must be a string or a number
5 function parses the string argument TypeError: float[] argument must be a string or a number
6 into a Python expression, runs it, and returns the result of the expression. If the “expression” is a simple float representation, Python converts the argument TypeError: float[] argument must be a string or a number
6 to a float. Nhưng lưu ý rằng nếu bạn có một danh sách chuỗi hỗn hợp với các biểu diễn số nguyên và float, danh sách kết quả của bạn cũng sẽ chứa các loại dữ liệu hỗn hợp:
array_ = array[[4]]
2Bạn có thể xem tôi giới thiệu về chức năng
TypeError: float[] argument must be a string or a number
4 trong hướng dẫn ngắn này:Python Eval [] - Cách đánh giá động biểu thức mã trong Python
Lập trình viên hài hước
array_ = array[[4]]
3Để tăng cường các kỹ năng Python của bạn một cách dễ dàng, hãy tham gia học viện email miễn phí của tôi với rất nhiều nội dung miễn phí và các trang tính gian lận nếu bạn đã trú ẩn! 🙂
Nếu bạn muốn tham gia và học Python trong khi được trả tiền trong quá trình này, hãy xem khóa học Python Freelancer của tôi, giáo dục nhà phát triển tự do số một trên thế giới!
Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.
Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer [Nostarch 2020], đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.
Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.