2017-02-09 157 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] 

這樣做是遍歷列表中的每個項目,然後用空格分隔該項目。接下來將前兩個元素和最後兩個元素之後的所有元素結合起來。假設您發佈的示例數據是整個數據集的代表,這應該起作用。