Python中的字符串分区

时间:2010-08-19 20:47:30

标签: python string

我有一个字符串列表,这些字符串都遵循名称的部分格式除以下划线。格式如下:

string="somethingX_somethingY_one_two"

我想知道如何从列表中的每个字符串中提取“one_two”并重建列表,以便每个条目只有"somethingX_somethingY"。我知道在C中,有一个strtok函数可用于拆分标记,但我不确定是否有类似的方法或策略在Python中获得相同的效果。请帮帮我?

3 个答案:

答案 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 )