Hướng dẫn convert single element list to float python - chuyển đổi danh sách phần tử đơn thành float python

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

array_ = array([4])
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])
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à
     4.0
    
    1 và
     4.0
    
    2Statements.
    : What elements to select? The context consists of an arbitrary number of
     4.0
    
    1 and
     4.0
    
    2statements.

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])
0

Phươ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
     4.0
    
    9.
  • Lặp lại trên mỗi phần tử chuỗi bằng cách sử dụng vòng lặp
     4.0
    
    1, chẳng hạn như
    TypeError: float() argument must be a string or a number
    
    1.
  • Chuyển đổi chuỗi thành một chiếc phao bằng
    TypeError: float() argument must be a string or a number
    
    2 và nối nó vào danh sách phao mới bằng phương thức
    TypeError: float() argument must be a string or a number
    
    3.

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])
2

Bạ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!

Hướng dẫn convert single element list to float python - chuyển đổi danh sách phần tử đơn thành float python

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.