2017-02-09 174 views
0

列表中的每个字符串下面对应的两个标签:的Python ::分割字符串

tags = ['Club House Folk Pop ', 'alternative rock electro '] 

我想字符串,以创建具有正确类型的子列表分类,如分为:

['Club house', 'Folk Pop']['alternative rock', 'electro']

我知道我可以列表与分裂:

for t in tags: 
    tag = t.split("") 

但是这会破坏标签的含义。

有没有一种方法,我可以将它们分割使用一个特定的空间"",就像这样:

tags = ['Club House Folk Pop ', 'alternative rock electro ']

    ^       ^
        |        | 
        |        | 
        here       here 
+1

什么被认为是“正确”的流派?你有可用的有效类型列表吗? –

+0

它总是第二个空间?如果* first *类型是一个单词(例如''electro alternative rock''),那么怎么办?您可能更愿意尝试找到已知流派列表中的匹配项(如果可能)。 – Mac

+1

[在给定字符第n次出现时分割字符串]的可能重复(http://stackoverflow.com/questions/17060039/split-string-at-nth-occurrence-of-a-given-character) –

回答

0

假设它始终是第二空间后,您可以使用拆分列表以下内容:

x = [[" ".join(tag.split(" ")[:2]) , " ".join(tag.split(" ")[2:])] for tag in tags] 

这样做是遍历列表中的每个项目,然后用空格分隔该项目。接下来将前两个元素和最后两个元素之后的所有元素结合起来。假设您发布的示例数据是整个数据集的代表,这应该起作用。