更好的方式使用.replace和.strip?蟒蛇

时间:2017-04-11 19:40:09

标签: python

您好我想知道我是否可以比我更好地整理我的代码。

基本上答案就像x = "£1,094.99 " 我使用x.strip()x.strip("£")以及x.replace(",")然后x = float(x) * 1.18将数字转换为欧元。

有什么方法可以提高效率?我是新手,所以我只是想知道。

4 个答案:

答案 0 :(得分:8)

我经常使用的漂亮的衬垫是:

x = ''.join([c for c in x if c in '1234567890.'])

这样的事情:

x = "$1,094.99"
x = ''.join([c for c in x if c in '1234567890.'])
print x

会输出:

1094.99

然后你可以像往常一样使用你的浮动(x)* 1.18。我发现这是一个很好的方法,因为它是一些强大的东西。流浪的人物和美元符号而不是英镑符号不应该阻止它工作。

答案 1 :(得分:5)

您可以将其替换为''

float(data.replace(',','').replace('£',''))*1.18

答案 2 :(得分:1)

虽然它没有使用.split,但我总是找到你想要抓取所有非分隔符字符串(在这种情况下为数字)的问题,值得使用正则表达式。你只需要找到非白色或'。'

import re
x = "£1,094.99 "
number = float(''.join(re.findall('\w+|\.',s)))
euro = number * 1.18

答案 3 :(得分:0)

您可以使用redecimal模块优雅地执行此操作,如下所示:

# -*- coding: utf-8 -*-
from re import sub
from decimal import Decimal
x = "£1,094.99" 
value = Decimal(sub(r'[^\d.]', '', x))
print(value)
value_euro = float(value) * 1.18
print(value_euro)

这将导致:

1094.99
1292.0882