我有一个字符串列表,这些字符串都遵循名称的部分格式除以下划线。格式如下:
string="somethingX_somethingY_one_two"
我想知道如何从列表中的每个字符串中提取“one_two”并重建列表,以便每个条目只有"somethingX_somethingY"
。我知道在C中,有一个strtok函数可用于拆分标记,但我不确定是否有类似的方法或策略在Python中获得相同的效果。请帮帮我?
答案 0 :(得分:6)
您可以使用拆分和列表理解:
l = ['_'.join(s.split('_')[:2]) for s in l]
答案 1 :(得分:3)
如果你真的试图从字符串末尾删除“_one_two”,那么你可以这样做:
tail_len = len("_one_two")
strs = [s[:-tail_len] for s in strs]
如果要删除最后两个下划线分隔的组件,则可以执行以下操作:
strs = ["_".join(s.split("_")[:-2]) for s in strs]
如果这些都不是您想要的,那么让我们更详细地更新问题。
答案 2 :(得分:2)
我认为这就是你所要求的。
s = "somethingX_somethingY_one_two"
splitted = s.split( "_" )
splitted = [ x for x in splitted if "something" in x ]
print "_".join( splitted )