Python选择忽略字符串值

时间:2011-03-03 11:09:07

标签: python string

使用Python v2,有没有办法忽略字符串中的值?

例如:我希望有人输入$ 100.00的值,或者他们可以在没有前导$符号的情况下输入值100.00。我想要做的是忽略'$'值,如果输入的话。

任何正确方向的推动都会受到赞赏。

6 个答案:

答案 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 != "$"))

当然,如果您不知道要删除的角色的位置,这是合理的