正则数据匹配

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

import re
ls = ['2', '1.75万', '386', '21.1万', '12万', '4156.1']
lists = []
for i in ls:

# 含有小数点和万字的 数据,进行以下条件判断,使用group方法是为了将正则search获取的结果取出来
# 遍历的数据原本是str类型,我们需要将其转变类型,带小数点的,先将其转变为float类型再转变为int类型
if '万' in i and '.' in i:
res = re.search('(\d+\.?\d+)', i).group(1)
res1 = int(float(res) * 10000)

lists.append(res1)

# 含有万字的数据, 进行以下条件判断
elif '万' in i:
res2 = re.search('(\d+)', i).group(1)
res3 = int(res2) * 10000

lists.append(res3)
else:
lists.append(i)
# ['2', 17500, '386', 211000, 120000, '4156.1']
print(lists)

保留小数

1
2
3
4
5
from decimal import Decimal
num = [1, 2, 3, 4, 5]
sum_num = sum(num)/9
res_num = Decimal(sum_num).quantize(Decimal('0.00'))
print(res_num)