Tôi có một danh sách bao gồm các giá trị nổi nhưng chúng quá chi tiết để tiến hành. Tôi biết chúng ta có thể rút ngắn chúng bằng cách sử dụng toán tử
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
3, như:result = [359.70000000000005]
result = "%.2f" % result
result = [359.70]
Câu hỏi của tôi là làm thế nào tôi có thể biến một danh sách các giá trị thành các phần tương đương tròn của chúng mà không cần sử dụng trình lặp. Tôi đã thử một cái gì đó, nhưng nó ném một
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
4:list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
Làm thế nào tôi có thể cung cấp một danh sách sạch như:
list = [0.30, 0.5, 0.20]
Gandreadis
2.8872 Huy hiệu vàng28 Huy hiệu bạc37 Huy hiệu đồng2 gold badges28 silver badges37 bronze badges
Đã hỏi ngày 16 tháng 3 năm 2011 lúc 13:37Mar 16, 2011 at 13:37
1
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
5 không trả lại một chiếc phao sạch. Nó trả về một chuỗi đại diện cho chiếc phao này với hai số thập phân.string representing this float with two decimals.my_list = [0.30000000000000004, 0.5, 0.20000000000000001]
my_formatted_list = [ '%.2f' % elem for elem in my_list ]
returns:
['0.30', '0.50', '0.20']
Ngoài ra, đừng gọi biến của bạn
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
6. Đây là một từ dành riêng để tạo danh sách. Sử dụng một số tên khác, ví dụ list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
7.Nếu bạn muốn có được
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
8 [hoặc ít nhất là những chiếc phao gần nhất có thể], bạn có thể thử điều này:my_rounded_list = [ round[elem, 2] for elem in my_list ]
returns:
[0.29999999999999999, 0.5, 0.20000000000000001]
Gandreadis
2.8872 Huy hiệu vàng28 Huy hiệu bạc37 Huy hiệu đồng2 gold badges28 silver badges37 bronze badges
Đã hỏi ngày 16 tháng 3 năm 2011 lúc 13:37Mar 16, 2011 at 13:39
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
5 không trả lại một chiếc phao sạch. Nó trả về một chuỗi đại diện cho chiếc phao này với hai số thập phân.eumiroNgoài ra, đừng gọi biến của bạn
6. Đây là một từ dành riêng để tạo danh sách. Sử dụng một số tên khác, ví dụ list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
7.34 gold badges294 silver badges259 bronze badgeslist = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
4
Nếu bạn muốn có được
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
8 [hoặc ít nhất là những chiếc phao gần nhất có thể], bạn có thể thử điều này:import numpy as np
myList = list[np.around[np.array[myList],2]]
Đã trả lời ngày 16 tháng 3 năm 2011 lúc 13:39Mar 25, 2018 at 4:37
Eumiroeumirojohn ktejik
199K34 Huy hiệu vàng294 Huy hiệu bạc259 Huy hiệu Đồng4 gold badges49 silver badges53 bronze badges
2
Nếu bạn thực sự muốn một giải pháp không có vòng lặp, bạn có thể sử dụng Numpy và chức năng tròn mảng của nó.
>>> from decimal import *
>>> mylist = [0.30000000000000004, 0.5, 0.20000000000000001]
>>> getcontext[].prec = 2
>>> ["%.2f" % e for e in mylist]
['0.30', '0.50', '0.20']
>>> [Decimal["%.2f" % e] for e in mylist]
[Decimal['0.30'], Decimal['0.50'], Decimal['0.20']]
>>> data = [float[Decimal["%.2f" % e]] for e in mylist]
>>> data
[0.3, 0.5, 0.2]
Đã trả lời ngày 25 tháng 3 năm 2018 lúc 4:37Mar 16, 2011 at 14:08
John Ktejikjohn Ktejikmartineau
5.7514 Huy hiệu vàng49 Huy hiệu bạc53 Huy hiệu Đồng25 gold badges160 silver badges285 bronze badges
0
mylist = [0.30000000000000004, 0.5, 0.20000000000000001]
myRoundedList = [round[x,2] for x in mylist]
# [0.3, 0.5, 0.2]
Bạn có thể muốn xem mô -đun
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
9 của Python, có thể sử dụng số điểm nổi và thực hiện số học với chúng trực quan hơn rất nhiều. Đây là một ví dụ tầm thường về một cách sử dụng nó để "làm sạch" các giá trị danh sách của bạn:Đã trả lời ngày 16 tháng 3 năm 2011 lúc 14:083 gold badges39 silver badges44 bronze badges
MartineaumartineauOct 21, 2018 at 17:42
Silvia42Silvia42Silvia42
Huy hiệu vàng 116K251 silver badge1 bronze badge
PZAEnger
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
010k3 Huy hiệu vàng39 Huy hiệu bạc44 Huy hiệu đồng
list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
1Đã trả lời ngày 21 tháng 10 năm 2018 lúc 17:42Sep 8, 2020 at 18:22
Huy hiệu bạc 911jojo
Bạn có thể sử dụng
0 tích hợp cùng với biểu thức list = [0.30, 0.5, 0.20]
1:2 gold badges49 silver badges69 bronze badgeslist = [0.30, 0.5, 0.20]
Ngoài ra, bạn cũng có thể tạo một chức năng được đặt tên để làm tròn lên một chữ số cụ thể bằng cách sử dụng
list = [0.30, 0.5, 0.20]
2 từ mô -đun FuncTools để làm việc với các chức năng bậc cao hơn:list = [0.30000000000000004, 0.5, 0.20000000000000001]
list = "%.2f" % list
TypeError: not all arguments converted during string formatting
2Đã trả lời ngày 8 tháng 9 năm 2020 lúc 18:22May 16, 2018 at 15:55
Jojojojo
9,5162 huy hiệu vàng49 Huy hiệu bạc69 Huy hiệu đồng
np.round[list,2]
Một tùy chọn khác không yêu cầu Numpy là:Jul 4 at 14:42
1