Tôi có một tập lệnh đọc một tệp văn bản, rút số thập phân ra khỏi nó dưới dạng chuỗi và đặt chúng vào một danh sách.
Vì vậy, tôi có danh sách này:
my_list = ['0.49', '0.54', '0.54', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54']Làm cách nào để chuyển đổi từng giá trị trong danh sách từ một chuỗi thành phao?
Tôi đã thử:
for item in my_list: float(item)Nhưng điều này dường như không hiệu quả với tôi.
Wenuka
7312 Huy hiệu vàng8 Huy hiệu bạc20 Huy hiệu đồng2 gold badges8 silver badges20 bronze badges
Đã hỏi ngày 23 tháng 10 năm 2009 lúc 15:33Oct 23, 2009 at 15:33
2
[float(i) for i in lst]
Nói chính xác, nó tạo ra một danh sách mới với các giá trị float. Không giống như cách tiếp cận [float(i) for i in lst] 0, nó sẽ hoạt động trong PY3K.
Đã trả lời ngày 23 tháng 10 năm 2009 lúc 15:34Oct 23, 2009 at 15:34
SilentghostsilentghostSilentGhost
296K64 Huy hiệu vàng302 Huy hiệu bạc291 Huy hiệu Đồng64 gold badges302 silver badges291 bronze badges
4
[float(i) for i in lst] 1 nên làm điều đó.
.
Đã trả lời ngày 23 tháng 10 năm 2009 lúc 15:34Oct 23, 2009 at 15:34
SilentghostsilentghostTim Pietzcker
296K64 Huy hiệu vàng302 Huy hiệu bạc291 Huy hiệu Đồng57 gold badges494 silver badges550 bronze badges
1
[float(i) for i in lst] 1 nên làm điều đó.
import numpy as np list(np.float_(list_name)).May 26, 2018 at 12:35
Tim Pietzckertim PietzckerAmin Kiany
Phù bằng vàng 319K576 silver badges16 bronze badges
1
Đây sẽ là một phương pháp khác (mà không cần sử dụng bất kỳ vòng lặp!):
new_list = [] for item in list: new_list.append(float(item))Đã trả lời ngày 26 tháng 5 năm 2018 lúc 12:35
Amin Kianyamin Kiany
for index, item in enumerate(list): list[index] = float(item)6436 Huy hiệu bạc16 Huy hiệu Đồng
[float(i) for i in lst] 3 làm điều đúng: nó chuyển đổi đối số của nó thành float và trả lại, nhưng nó không thay đổi đối số tại chỗ. Một bản sửa lỗi đơn giản cho mã của bạn là:Oct 23, 2009 at 15:44
Mã tương tự có thể viết ngắn hơn bằng cách sử dụng danh sách hiểu: [float(i) for i in lst] 4Denis Otkidach
Để thay đổi danh sách tại chỗ:8 gold badges75 silver badges97 bronze badges
2
BTW, tránh sử dụng [float(i) for i in lst] 5 cho các biến của bạn, vì nó giả mạo chức năng tích hợp có cùng tên.
import numpy as np np.array(your_list,dtype=float)Đã trả lời ngày 23 tháng 10 năm 2009 lúc 15:44
Denis Otkidachdenis Otkidach
31.1k8 Huy hiệu vàng75 Huy hiệu bạc97 Huy hiệu ĐồngSep 16, 2018 at 12:37
Bạn thậm chí có thể làm điều này bằng cách NumpyAlireza
Mảng NP trả lại này trong danh sách của bạn dưới dạng float7 silver badges10 bronze badges
1
bạn cũng có thể đặt 'dtype' như int
float_list = map(float, list)
Đã trả lời ngày 16 tháng 9 năm 2018 lúc 12:37May 23, 2021 at 4:44
mnaghd01mnaghd01mnaghd01
Alirezaalireza2 silver badges6 bronze badges
7267 Huy hiệu bạc10 Huy hiệu đồng
Bạn có thể sử dụng chức năng [float(i) for i in lst] 6 để chuyển đổi danh sách trực tiếp thành [float(i) for i in lst] 7:Đã trả lời ngày 23 tháng 5 năm 2021 lúc 4:44
list_float = np.array(list_ex) + 0. # This is a numpy floating array1052 Huy hiệu bạc6 Huy hiệu đồngJan 7, 2016 at 15:13
bfree67bfree67bfree67
Bạn có thể sử dụng Numpy để chuyển đổi danh sách trực tiếp sang mảng nổi hoặc ma trận.6 silver badges5 bronze badges
________số 8
for item in my_list: float(item) 0
Nếu bạn muốn chuyển đổi mảng số nguyên thành một mảng nổi thì thêm 0.♦
Đã trả lời ngày 7 tháng 1 năm 2016 lúc 15:1331 gold badges106 silver badges127 bronze badges
5996 Huy hiệu bạc5 Huy hiệu ĐồngJan 27, 2018 at 23:41
Đây là cách tôi sẽ làm điều đó.Samlex
Stephen Rauch ♦2 silver badges5 bronze badges
46K31 Huy hiệu vàng106 Huy hiệu bạc127 Huy hiệu đồng
for item in my_list: float(item) 1Đã trả lời ngày 27 tháng 1 năm 2018 lúc 23:41Jul 9, 2020 at 0:48
1
for item in my_list: float(item) 2
Samlexsamlex
for item in my_list: float(item) 31392 Huy hiệu bạc5 Huy hiệu ĐồngMay 16, 2018 at 12:33
Bạn có thể sử dụng Numpy để tránh lặp lại:
for item in my_list: float(item) 4Đã trả lời ngày 9 tháng 7 năm 2020 lúc 0:48
for item in my_list: float(item) 5trong đó hiển thị loại dưới dạng danh sách các chuỗi. Bạn có thể chuyển đổi danh sách này thành một mảng nổi đồng thời bằng Numpy:
for item in my_list: float(item) 6Đã trả lời ngày 16 tháng 5 năm 2018 lúc 12:33Mar 5, 2019 at 13:34
Tôi đã phải trích xuất các số đầu tiên từ một danh sách các chuỗi float:Max Kleiner
Sau đó, mỗi người chuyển đổi thành một chiếc phao:11 silver badges13 bronze badges
Cuối cùng, gán tất cả các float cho DataFrame dưới dạng float64:
for item in my_list: float(item) 7
Đã trả lời ngày 5 tháng 3 năm 2019 lúc 13:34
Max Kleinermax Kleiner4 gold badges31 silver badges37 bronze badges
1.18211 Huy hiệu bạc13 Huy hiệu đồngSep 4, 2018 at 13:53
1
for item in my_list: float(item) 8
double-beep
Tôi đã giải quyết vấn đề này trong chương trình của mình bằng cách sử dụng:13 gold badges31 silver badges41 bronze badges
kết ánMay 23, 2019 at 16:05
for item in my_list: float(item) 9
7.5454 Huy hiệu vàng31 Huy hiệu bạc37 Huy hiệu đồngOct 18 at 18:57
Đã trả lời ngày 4 tháng 9 năm 2018 lúc 13:53Aruz
4.60613 Huy hiệu vàng31 Huy hiệu bạc41 Huy hiệu đồng6 bronze badges