使用Python v2,有没有办法忽略字符串中的值?
例如:我希望有人输入$ 100.00的值,或者他们可以在没有前导$符号的情况下输入值100.00。我想要做的是忽略'$'值,如果输入的话。
任何正确方向的推动都会受到赞赏。
答案 0 :(得分:2)
也许
s = " $100.00 "
f = float(s.strip().lstrip("$"))
.strip()
从字符串的开头和结尾开始删除空格,.lstrip("$")
从开头开始删除一个美元符号(如果存在)。
答案 1 :(得分:1)
只需从字符串中过滤掉不需要的字符即可。有多种方法可以使用:
def clean(s, wanted = "0123456789."):
"""Returns version of s without undesired characters in it."""
out = ""
for c in s:
if c in wanted:
out += c
return out
为了避免动态字符串构建(这是昂贵的),您可以构建一个列表,然后将列表转换为字符串:
def clean2(s, wanted = "0123456789."):
outlist = [c for c in s if c in wanted]
return "".join(outlist)
答案 2 :(得分:1)
如果你只想删除'$',那么s.replace('$', '')
就会有你想要的。
如果您想要替换多个字符,那么您需要将替换调用链接在一起,这会非常快速地变得非常难看,在这种情况下,其他解决方案之一可能更好。
答案 3 :(得分:0)
您可以简单地使用正则表达式从字符串中提取数字。
如果你只想删除一个前导$
:
if s.startswith('$'):
s = s[1:]
如果您想删除多个$
个符号,请将if
替换为while
或使用s = s.lstrip('$')
PS:您可能也希望删除尾随的$
标志。在这种情况下,rstrip()
或endswith()
和s[:-1]
是您的朋友。
答案 4 :(得分:0)
在处理之前,只需从字符串中lstrip $
。
value = ...
value = value.lstrip( ' $' ) # Strip blank and $
答案 5 :(得分:0)
a = "$100.00"
b = ''.join((c for c in a if c != "$"))
当然,如果您不知道要删除的角色的位置,这是合理的