将浮点列表格式化为2个小数点

时间:2015-11-02 15:33:42

标签: python regex python-3.x floating-point decimal

我正在尝试通过文本搜索找到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])

2 个答案:

答案 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)