将嵌套字符串列表转换为嵌套字符串列表
问题描述:
我想知道如何使用字符串处理如.split(),.strip()和.replace()将嵌套字符串列表转换为嵌套字符串列表。 )。样品将被转换得象一个序列(注意用双引号单引号):将嵌套字符串列表转换为嵌套字符串列表
['"Chipotle"', '"Pho"']
成类似:
[["Chipotle"], ["Pho"]]
答
如果您嵌套字符串都在“‘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']]
'[word.strip( '“')]在inputlist字]'会做,这是一个相当广泛的问题,如果你。在一般情况下,我们正在讨论这样做* –
你在外部字符串中是否有多于一个内部字符串?例如'''''''''''如果是这样,你可能需要'ast.literal_eval' ,因为它会将多个逗号分隔的字符串转换为元组。 – Blckknght