2015-11-06 203 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