Python 将列表中的特定项拆分为两个

Python 将列表中的特定项拆分为两个,python,string,list,xml-parsing,Python,String,List,Xml Parsing,我正在用python为SVG文件构建一个XML解析器。它最终将成为步进电机的具体说明 SVG文件包含诸如“M”、“C”和“L”等命令。路径数据可能如下所示: whole = "0.5C199.66" start = whole[0:whole.find("C")] end = whole[whole.find("C"):] [M199.66,0.50C199.6,0.50…0.50Z] 当我提取路径数据时,它是一个包含一个项目(字符串)的列表。我将长字符串拆分为多个字符串: [u'M199.6

我正在用python为SVG文件构建一个XML解析器。它最终将成为步进电机的具体说明

SVG文件包含诸如“M”、“C”和“L”等命令。路径数据可能如下所示:

whole = "0.5C199.66"
start = whole[0:whole.find("C")]
end = whole[whole.find("C"):]
[M199.66,0.50C199.6,0.50…0.50Z]

当我提取路径数据时,它是一个包含一个项目(字符串)的列表。我将长字符串拆分为多个字符串:

[u'M199.6',u'0.50C199.66',u'0.50']

“M、C和L”命令很重要-我很难将“0.5C199.6”拆分为“0.5”和“C199.6”,因为它只存在于列表中的某些项目中,我希望保留C而不是放弃它。这就是我到目前为止所做的:

for item in path_strings[0]:
    s=string.split(path_strings[0], ',')
    print s
    break
for i in range(len(s)):
    coordinates=string.split(s[i],'C')
    print coordinates
    break

您可以尝试将其拆分为如下子字符串:

whole = "0.5C199.66"
start = whole[0:whole.find("C")]
end = whole[whole.find("C"):]
这将为您提供
start==“0.5”
end==“C199.66”

或者,您可以使用index函数而不是find,当无法找到子字符串时,这会引发ValueError。这将使您能够轻松确定当前字符串不存在“C”命令


使用正则表达式搜索命令(
[MCL]

将列表拆分为:

[u'M199.6', u'0.50', u'C199.66', u'0.50']

将C添加回应该的位置?不清楚您的要求,但建议使用regex
re
module而不是这些字符串操作SVG.path可以解析SVG路径。如果我没记错的话,我认为它有一些缺陷,但这至少是一个开始。:)您应该只执行
whole.find('C')
,而不是
string.find('C')
。绝对不需要导入
字符串