【问题标题】:Python: remove initial number and underscore from strings in a line (but keep other underscores)Python:从一行中的字符串中删除初始数字和下划线(但保留其他下划线)
【发布时间】:2019-06-10 15:56:30
【问题描述】:

我有一条分割线(使用.split() 分割),如下所示:

['a', 'b', 'c', '1_a23_4', '2_b234', '300_235_2_2', '1000_1_1_1_1']

每个字符串在第一个下划线之后都有可变数量的下划线和不同的字母/数字组合。对于任何带有数字后跟下划线的字符串,我想删除初始数字/下划线以获得此结果:

['a', 'b', 'c', 'a23_4', 'b234', '235_2_2', '1_1_1_1']

这类似于this question,但我在拆分行中的某些字符串有多个下划线。

【问题讨论】:

    标签: python


    【解决方案1】:

    你可以使用re.sub:

    import re
    d = ['a', 'b', 'c', '1_a23_4', '2_b234', '300_235_2_2', '1000_1_1_1_1']
    new_d = [re.sub('^\d+_', '', i) for i in d]
    

    输出:

    ['a', 'b', 'c', 'a23_4', 'b234', '235_2_2', '1_1_1_1']
    

    【讨论】:

      【解决方案2】:
      >>> l=['a', 'b', 'c', '1_a23_4', '2_b234', '300_235_2_2', '1000_1_1_1_1']
      >>> l=["_".join(i.split("_")[1:]) if "_" in i else i for i in l]
      >>> l
      ['a', 'b', 'c', 'a23_4', 'b234', '235_2_2', '1_1_1_1']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-05
        • 2012-10-12
        • 2016-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-10
        • 2018-05-18
        相关资源
        最近更新 更多