2015-11-06 202 views
0

我想知道如何使用字符串處理如.split(),.strip()和.replace()將嵌套字符串列表轉換爲嵌套字符串列表。 )。樣品將被轉換得象一個序列(注意用雙引號單引號):將嵌套字符串列表轉換爲嵌套字符串列表

['"Chipotle"', '"Pho"'] 

成類似:

[["Chipotle"], ["Pho"]] 
+4

'[word.strip( '「')]在inputlist字]'會做,這是一個相當廣泛的問題,如果你。在一般情況下,我們正在討論這樣做* –

+0

你在外部字符串中是否有多於一個內部字符串?例如'''''''''''如果是這樣,你可能需要'ast.literal_eval' ,因爲它會將多個逗號分隔的字符串轉換爲元組。 – Blckknght

回答

2

如果您嵌套字符串都在「‘A’的形式, 「B」,「C」」,你可以使用以下命令:

s.split('"')[1::2] split by double quote, only odd indices (i.e. between quotes) 

如果你想有一個嵌套列表,你可以用這個表達在列表解析裏,像這樣:

[s.split('"')[1::2] for s in thelist] 

其中thelist是原始列表。

爲什麼只有奇數指數?它來自字符串的結構:

split()結果的第0個元素將成爲第1個引號之前的字符串的一部分; 1st - 在第一和第二個報價之間; 第2個 - 第2個和第3個之間,依此類推。

我們只需要奇數(開頭)和偶數(結束)引號之間的字符串。

例子:

t = ['"1","2","3","4"', '"5","6","7',"8"'] 
a = [s.split('"')[1::2] for s in t] 
print(a) 

打印

[['1','2','3','4'],['5','6','7','8']] 
+1

什麼是's'?請詳細說明並解釋(答案似乎已被中途放棄)。輸入/輸出中的/ etc。 – Pynchia

+0

's'是一個字符串(以上述形式,即列表的元素)。 – hyst329

+1

@Pynchia謝謝!現在更全面地解釋了答案 – hyst329