【问题标题】:python string: remove all zeros and one value before each zero in a stringpython字符串:删除字符串中每个零之前的所有零和一个值
【发布时间】:2018-10-27 03:36:24
【问题描述】:

我有一个幼稚的 Python 问题;我需要从字符串“s”中删除“0”和它之前的值(任何值):

s = "8      9243  8607  56     586262       4697424       00000       ik   0       C   S<->L       G   0       G  0       G  0       P    A<->A     R    0"

并打印以下内容:

8      9243  8607  56     586262       4697424       00000 C   S<->L P    A<->A

有什么建议吗?

谢谢。

【问题讨论】:

    标签: python split naivebayes


    【解决方案1】:

    这是一个“hacky”解决方案。

    请注意,它不会像您的输出那样在“s”中保留空格(如果需要,可能会保留),但结果值是相同的:

    # s = ...  # your s string
    
    ss = []
    
    split = s.split()
    
    for i, n in enumerate(split):
        try:
            if split[i+1] == '0':
                pass
            elif n != '0':
                ss.append(n)
    
        except IndexError:
            pass
    
    print ' '.join(ss)
    

    打印:

    8 9243 8607 56 586262 4697424 00000 C S<->L P A<->A
    

    【讨论】:

      【解决方案2】:

      你可以使用re.sub:

      import re
      s = "8      9243  8607  56     586262       4697424       00000       ik   0       C   S<->L       G   0       G  0       G  0       P    A<->A     R    0"
      new_s = re.sub('\s{6,}', '  ', re.sub('[a-zA-Z\d]+\s+0', '', s))
      

      输出:

      8  9243  8607  56     586262  0000  C   S<->L  P    A<->A     
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-21
        • 1970-01-01
        • 2012-10-19
        • 2014-08-09
        • 2011-07-03
        • 2011-04-09
        • 2017-07-10
        相关资源
        最近更新 更多