Python:从String的末尾修剪下划线

Ann*_*ine 5 python arrays

嗨,大家好!我试图调试someones代码,我发现了问题.程序循环遍历一个字符串数组并计算某些结束.问题是这些字符串中的一些_以此结束,因此计数出错.我想使用正则表达式,但我没有足够的经验.有人能帮助我吗?

我想遍历数组和每个字符串检查它是否以_('s)结束并修剪所有这些_以将它们再次放入数组中!

更新

谢谢你的rstrip建议!我曾尝试编写一个适用于我的数据的代码,但还没有运气......

data_trimmed = []
        for x in data:
            x.rstrip('_')
            data_trimmed.append(x)

        print(data_trimmed)
Run Code Online (Sandbox Code Playgroud)

但这仍然会回归: ['Anna__67_______', 'Dyogo_3__', 'Kiki_P1_', 'BEN_40001__', .... ]

EdC*_*ica 7

您可以使用rstrip('_')删除尾随下划线:

In [15]:
'__as_das___'.rstrip('_')

Out[15]:
'__as_das'
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到任何前导下划线和字符串中间的任何下划线都不受影响,请参阅文档:https://docs.python.org/2/library/string.html#string-functions

要回答更新的问题,您可以使用列表推导来更新列表中的每个字符串:

In [18]:
a = ['Anna__67_______', 'Dyogo_3__', 'Kiki_P1_', 'BEN_40001__']
a = [x.rstrip('_') for x in a]
a

Out[18]:
['Anna__67', 'Dyogo_3', 'Kiki_P1', 'BEN_40001']
Run Code Online (Sandbox Code Playgroud)

  • @AnnaJeanine你需要将值重新初始化为`x`为`x = x.rstrip('_')`.您也可以将整个逻辑写为:`data_trimmed = [x.rstrip('_')for data in data] (2认同)