我正在尝试通过文本搜索找到Money EG£12.30取数字然后求和它们。我已经设法达到了我有浮动列表但我似乎无法将它们带到2的点小数点。但是在下面的代码中,如果我在列表中指定一个元素,例如[0],那么它将该元素格式化为2个小数点。
所以我的问题是: 如何将整个列表格式化为2位小数,请记住我不知道列表将会有多长。
import re
num_regex = re.compile(r'\d\d.\d\d')
file_name = input("Enter File Name to open: ")
text_file = open(file_name, 'r')
search_text = text_file.read()
search = num_regex.findall(search_text)
print("Numbers found:", search,)
new_search =[]
for item in search:
new_search.append(float(item))
new_search[0] = "%.2f" % new_search[0]
print(new_search[0])
答案 0 :(得分:1)
如何将整个列表格式化为2个小数位,请记住我不知道列表的长度。
您使用for
循环,迭代您的数字列表,可能在列表理解中。考虑以下每一个:
formatted_list = []
for item in new_search:
formatted_list.append("%.2f"%item)
print("Formatted List:", formatted_list)
或等同地:
formatted_list = ["%.2f"%item for item in new_search]
print("Formatted List:", formatted_list)
以下是整个程序,使用列表推导:
import re
num_regex = re.compile(r'\d\d.\d\d')
file_name = input("Enter File Name to open: ")
text_file = open(file_name, 'r')
search_text = text_file.read()
search = num_regex.findall(search_text)
print("Numbers found:", search,)
new_search =[float(item) for item in search]
print("Numbers found:", new_search,)
formatted_search =["%.2f"%item for item in new_search]
print("Numbers found:", formatted_search,)
答案 1 :(得分:1)
在将变量附加到列表之前格式化变量
item_price = []
price = float(input('What is the price of the item? '))
fprice = '{:.2f}'.format(price)
item_price.append(fprice)